repo
{
  ; Section defining list of Data prefixes to register
  ; Additionally define how many components off the end of data prefixes to insert into NFD
  ; 'prefix' option can be repeated multiple times
  ; 'registration-subset' defines how many components to exclude. This includes the implicit digest
  ; at the end of the data name.
  data
  {
    registration-subset 2
    prefix "ndn:/example/data/1"
    prefix "ndn:/example/data/2"
  }

  ; Section defining list of command prefixes (to insert or delete Data) to register.
  ; Only 'prefix' option is allowed here, which can be repeated multiple times
  command
  {
    prefix "ndn:/example/repo/1"
    prefix "ndn:/example/repo/2"
  }

  ; Section to specify where data should be stored
  ; Right now only a single 'sqlite' option is allowed:
  storage
  {
    method "sqlite"             ; Currently, only sqlite storage engine is supported
    path "/var/db/ndn-repo-ng"  ; path to repo-ng storage folder
    max-packets 100000
  }

  ; Section to enable TCP bulk insert capability
  ; If section is present, then TCP bulk insert is enabled (empty section enables
  ; TCP bulk insert to listen on "localhost:7376")
  tcp_bulk_insert {
    ; host "localhost"  ; Set to listen on different IP address or hostname
    ; port 7376  ; Set to listen on different port number
  }

  validator
  {
    ; The following rule disables all security in the repo
    trust-anchor {
        type any
    }

    ; ; These rule are examples of validation of signed interests for commands and data.
    ; ; User could define its own rule for signed interest or data to be inserted
    ; ; according to Validator Configuration File Format.
    ; ; (http://redmine.named-data.net/projects/ndn-cxx/wiki/CommandValidatorConf)
    ; rule
    ; {
    ;   id "Simple Rule For Interest"
    ;   for interest
    ;   filter
    ;   {
    ;     type name
    ;     name /example/repo/1
    ;     relation is-prefix-of
    ;   }
    ;   checker
    ;   {
    ;     type fixed-signer
    ;     sig-type rsa-sha256
    ;     signer
    ;     {
    ;       type file
    ;       ; repo-ng.cert.sample is just a non-existent certificate.
    ;       ; User should create its own certification using Security Tool.
    ;       ; (http://redmine.named-data.net/projects/ndn-cxx/wiki/SecurityTools)
    ;       file-name "repo-ng.cert.sample"
    ;     }
    ;   }
    ; }
    ;
    ; rule
    ; {
    ;   id "Simple Rule For Data"
    ;   for data
    ;   filter
    ;   {
    ;     type name
    ;     name /example/data/1
    ;     relation is-prefix-of
    ;   }
    ;   checker
    ;   {
    ;     type fixed-signer
    ;     sig-type rsa-sha256
    ;     signer
    ;     {
    ;       type file
    ;       ; repo-ng.cert.sample is just a non-existent certificate.
    ;       ; User should create its own certification using Security Tool.
    ;       ; (http://redmine.named-data.net/projects/ndn-cxx/wiki/SecurityTools)
    ;       file-name "repo-ng.cert.sample"
    ;     }
    ;   }
    ; }
  }
}