# Configuration for repository.

graph:
    # Name of the "main" graph containing metadata about all resources.
    #
    # Default: main
    main_graph: main

# Configuration for binary path and fixity check generation. The hash is a
# checksumn of the contents of the file.
uuid:
    # Algorithm used to calculate the hash that generates the content path.
    # One of: sha1, sha224, sha256, sha384, or sha512, corresponding to the
    # omonymous hashlib function.
    #
    # Default: sha1.
    algo: sha1


# Data store configuration.
store:
    # The semantic store used for persisting LDP-RS (RDF Source) resources.
    # MUST support SPARQL 1.1 query and update.
    ldp_rs:
        # Store layout. This corresponds to a sub-class of the
        # `lakesuperior.store_layouts.rdf.base_rdf_layout/BaseRdfLayout`.
        layout: simple_layout
        # Whether to check if the object of a client-provided triple is the URI
        # of a repository-managed resource and veify if that exists.
        # If set to false, properties are allowed to point to resources in the
        # repositoy that do not exist. Also, if a resource is deleted, inbound
        # relationships may not be cleaned up.
        # This can be one of `none`, `lenient` or `strict`. `none` does not
        # check for referential integrity. `lenient` quietly drops a
        # user-provided triple if its # object violates referential integrity.
        # `strict` raises an exception.
        referential_integrity: lenient
        webroot: http://localhost:9999/namespace/fcrepo/
        query_ep: sparql
        update_ep: sparql
        # Optional
        #username: <set me>
        #password: <set me>
        #ssl_verify: false

    # The path used to persist LDP-NR (bitstreams).
    # This is for now a POSIX filesystem. Other solutions such as HDFS may be
    # possible in the future.
    ldp_nr:
        # See store.ldp_rs.layout.
        layout: default_layout
        # The filesystem path to the root of the binary store.
        path: /data/fcrepo/ldpnr_store

        # How to split the balanced pairtree to generate a path. The hash
        # string is defined by the uuid.algo parameter value.
        # This parameter defines how many characters are in each branch. 2-4 is
        # the recommended setting. NOTE: a value of 2 will generate up to 256
        # sub-folders in a folder; 3 will generate max. 4096 and 4 will
        # generate max. 65536. Check your filesystem capabilities before
        # setting this to a non-default value.
        #
        # Default: 2
        pairtree_branch_length: 2

        # Max. number of branches to generate. 0 will split the string until
        # it reaches the end.
        # E.g. if the hash value is 0123456789abcdef01234565789abcdef and the
        # branch length value is 2, and the branch number is 4, the path will
        # be 01/23/45/67/89abcdef01234565789abcdef. For a value of 0 it will be
        # 01/23/45/67/89/ab/cd/ef/01/23/45/67/89/ab/cd/ef. Check your system
        # capabilities for maximum nested directories before setting this to 0,
        # especially with longer hash algorithms.
        #
        # Default: 4
        pairtree_branches: 4

# Configuration for messaging.
messaging:
    # List of channels to send messages to.
    # Each channel must define the `endpoint` and the `level` parameters.
    routes:
          # Output handler. Currently only `StompHandler` is supported.
        - handler: StompHandler

          host: 127.0.0.1
          port: 61613
          username:
          password:
          protocol: 12
          destination: '/topic/fcrepo'

          # Message format: at the moment only `ActivityStreamsFormatter` is
          # supported.
          formatter: ActivityStreamsFormatter

          # Granularity level of messages. It can be one of:
          # - `none`: No message is ever sent.
          # - `resource`: Messages are sent whenever a resource is created,
          #   updated or deleted. No details about what changed is included.
          # - `provenance`: up to two messages are sent for each individual
          #   request: one for the added triples and one for the deleted triples.
          level: resource