All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.modeshape.jcr.repository-config-schema.json Maven / Gradle / Ivy

There is a newer version: 5.4.1.Final
Show newest version
{
    "$schema" : "http://modeshape.org/3.0/repository-config#",
    "id" : "http://modeshape.org/3.0/repository-config#",
    "type" : "object",
    
    "additionalProperties" : false,
    "properties" : {
        "name" : {
            "type" : "string",
            "required" : true,
            "description" : "The name of the repository. If not provided, the name of the configuration file is used (minus the filename extension)."
        },
        "description" : {
            "type" : "string",
            "description" : "The optional description of this repository. It is unused by ModeShape."
        },
        "jndiName" : {
            "type" : "string",
            "description" : "The name in JNDI where this repository is to be registered. If not specified, the location is assumed to be 'java:jcr/local/', where '' is the repository name. Setting this field to an empty string signals that the repository should not be registered in JNDI."
        },
        "transactionMode" : {
            "type" : "string",
            "description" : "Whether the repository should expect and detect whether JCR clients modify the content within transactions. The default value of 'auto' will automatically detect the use of both user- and container-managed transactions and also works when the JCR client does not use transactions; this will work in most situations. The value of 'none' specifies that the repository should not attempt to detect existing transactions; this setting is an optimization that should be used *only* if JCR clients will never use transactions to change the repository content.",
            "enum" : [ "auto", "none" ]
        },
        "monitoring" : {
            "type" : "object",
            "description" : "The specification for the monitoring system for the repository.",
            "additionalProperties" : false,
            "properties" : {
                "enabled" : {
                    "type" : "boolean",
                    "default" : true,
                    "description" : "The flag specifying whether the repositories should record monitoring statistics. This is enabled by default."
                },
                "description" : {
                    "type" : "string",
                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                },
            }
        },
        "garbageCollection" : {
            "type" : "object",
            "description" : "The specification for reclaiming unused persistent storage for the repository.",
            "additionalProperties" : false,
            "properties" : {
                "threadPool" : {
                    "type" : "string",
                    "default" : "modeshape-gc",
                    "description" : "Name of the thread pool that should be used to asynchronously reclaim unused persistent storage. Thread pools are named globally within a single ModeShape engine, and by default all repositories use the same thread pool for garbage collection."
                },
                "initialTime" : {
                    "type" : "string",
                    "default" : "00:00",
                    "pattern" : "(([0-1][0-9])|([2][0-3])):[0-5][0-9]",
                    "description" : "The local time that the first garbage collection process should be run. Garbage collection may be relatively expensive, as it involves scanning all persisted content, so it's recommended that this be done durign off hours if possible. By default, garbage collection is run at midnight (local time) after the repository is started."
                },
                "intervalInHours" : {
                    "type" : "integer",
                    "default" : "24",
                    "description" : "The number of hours between garbage collection runs. By default the interval is 24 hours (meaning it runs once per day)."
                },
            }
        },
        "storage" : {
            "type" : "object",
            "description" : "The specification of how to obtain the Infinispan cache used for storage.",
            "additionalProperties" : false,
            "properties" : {
                "description" : {
                    "type" : "string",
                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                },
                "cacheName" : {
                    "type" : "string",
                    "description" : "The name of the Infinispan cache that this repository should use. If not specified, the repository's name is used."
                },
                "cacheConfiguration" : {
                    "type" : "string",
                    "description" : "The name of the Infinispan configuration file for creating a new cache manager. If a file could not be found (on the thread context classloader, on the application's classpath, or on the system classpath), then the name is assumed to reference an existing Infinispan CacheContainer instance via a valid JNDI name or as the name of a service as defined by the local environment. If no such container is found, then a default Infinispan configuration (a basic, local mode, non-clustered cache) will be used."
                },
                "transactionManagerLookup" : {
                    "type" : "string",
                    "default" : "org.infinispan.transaction.lookup.GenericTransactionManagerLookup",
                    "description" : "DEPRECATED: This is no longer used. The transaction manager lookup class should be specified in the Infinispan cache configuration (or in a custom Environment subclass for default caches)."
                },
                "documentOptimization" : {
                    "type" : "object",
                    "description" : "The specification for optimizing the representation of each individual node persisted in the repository. Currently this is DISABLED by default; to enable, define a 'documentOptimization' document (even empty) under 'storage'.",
                    "additionalProperties" : false,
                    "properties" : {
                        "threadPool" : {
                            "type" : "string",
                            "default" : "modeshape-opt",
                            "description" : "Name of the thread pool that should be used to asynchronously optimize persisted node representations. This process is only required when nodes have large numbers of children, as defined by the child count target. Thread pools are named globally within a single ModeShape engine, and by default all repositories use the same thread pool for document optimization. DOCUMENT OPTIMIZATION IS A TECHNOLOGY PREVIEW AND SHOULD NOT YET BE USED IN PRODUCTION."
                        },
                        "initialTime" : {
                            "type" : "string",
                            "default" : "00:00",
                            "pattern" : "(([0-1][0-9])|([2][0-3])):[0-5][0-9]",
                            "description" : "The local time that the first document optimization process should be run. Document optimization may be relatively expensive, as it involves scanning all persisted content, so it's recommended that this be done during off hours if possible. The format is 'hh:mm', or two-digit hours and two-digit minutes. By default, the value is '02:00' garbage collection is run at 2AM (local time) after the repository is started. DOCUMENT OPTIMIZATION IS A TECHNOLOGY PREVIEW AND SHOULD NOT YET BE USED IN PRODUCTION."
                        },
                        "intervalInHours" : {
                            "type" : "integer",
                            "default" : "24",
                            "description" : "The number of hours between document optimization runs. By default the interval is 24 hours (meaning it runs once per day). DOCUMENT OPTIMIZATION IS A TECHNOLOGY PREVIEW AND SHOULD NOT YET BE USED IN PRODUCTION."
                        },
                        "childCountTarget" : {
                            "type" : "integer",
                            "minimum" : 1,
                            "description" : "The maximum number of children that are ideally stored within a single document (e.g., node document or separate page of children). A lower number might result in more pages but faster load times for nodes when accessing a subset of the children, but getting particular children or all children of a node will require reading multiple documents/pages. A larger number may increase the time required to read each document/page, but may reduce the total number of document/page reads necessary to load a particular child or all children of a node. There is no default because the performance is highly dependent upon application usage and access patterns. Therefore, we strongly recommend testing with various values. Optimization is only enabled with a valid value. DOCUMENT OPTIMIZATION IS A TECHNOLOGY PREVIEW AND SHOULD NOT YET BE USED IN PRODUCTION."
                        },
                        "childCountTolerance" : {
                            "type" : "integer",
                            "minimum" : 1,
                            "description" : "The range that the actual number of children in a document can vary above the target before the documents/pages are split, or below the target before documents/pages are merged. There is no default because the performance is highly dependent upon application usage and access patterns. Therefore, we strongly recommend testing with various values. Optimization is only enabled with a valid value. DOCUMENT OPTIMIZATION IS A TECHNOLOGY PREVIEW AND SHOULD NOT YET BE USED IN PRODUCTION."
                        },
                    }
                },
                "binaryStorage" : {
                    "type" : [
                        {
                            "type" : "object",
                            "additionalProperties" : false,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of the transient binary store, which keeps BINARY values on disk in the temp directory.",
                                    "enum" : [ "transient" ]
                                },
                                "storeName" : {
                                    "type" : "string",
                                    "description" : "A short, implementer-supplied name for this binary store"
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : false,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of the file-based binary store, which keeps BINARY values on disk in the specified directory.",
                                    "enum" : [ "file" ]
                                },
                                "storeName" : {
                                    "type" : "string",
                                    "description" : "A short, implementer-supplied name for this binary store"
                                },
                                "directory" : {
                                    "type" : "string",
                                    "required" : true,
                                    "description" : "The location of the directory the file system under which the BINARY values should be stored. The value can be an absolute or relative path."
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : false,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of the database binary store, which stores BINARY values in a JDBC-compatible database accessed through a JDBC DataSource registered in JNDI.",
                                    "enum" : [ "database" ]
                                },
                                "storeName" : {
                                    "type" : "string",
                                    "description" : "A short, implementer-supplied name for this binary store"
                                },
                                "dataSourceJndiName" : {
                                    "type" : "string",
                                    "description" : "The name in JNDI where the JDBC DataSource is registered that should be used for binary storage.",
                                    "required" : true,
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : true,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of the database binary store, which stores BINARY values in a JDBC-compatible database accessed through a JDBC connection established by specifying the driver class, URL, and other properties",
                                    "enum" : [ "database" ]
                                },
                                "storeName" : {
                                    "type" : "string",
                                    "description" : "A short, implementer-supplied name for this binary store"
                                },
                                "driverClass" : {
                                    "type" : "string",
                                    "description" : "The full-qualified name of the JDBC driver class.",
                                    "required" : true,
                                },
                                "url" : {
                                    "type" : "string",
                                    "description" : "The URL to be used to establish the database connection.",
                                    "required" : true,
                                },
                                "username" : {
                                    "type" : "string",
                                    "description" : "The (optional) username for the database connection. Many JDBC drivers accept specifying the username in the URL.",
                                    "required" : false,
                                },
                                "password" : {
                                    "type" : "string",
                                    "description" : "The (optional) password for the database connection. Many JDBC drivers accept specifying the password in the URL.",
                                    "required" : false,
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : false,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of the Infinispan binary store, which stores BINARY values in a Infinispan cache.",
                                    "enum" : [ "cache" ]
                                },
                                "storeName" : {
                                    "type" : "string",
                                    "description" : "A short, implementer-supplied name for this binary store"
                                },
                                "dataCacheName" : {
                                    "type" : "string",
                                    "required" : true,
                                    "description" : "The name of the Infinispan cache where BINARY values are stored as chunks."
                                },
                                "metadataCacheName" : {
                                    "type" : "string",
                                    "required" : true,
                                    "description" : "The name of the Infinispan cache where metadata of the values should be stored."
                                },
                                "cacheConfiguration" : {
                                    "type" : "string",
                                    "description" : "The name of the Infinispan configuration file for creating a new cache manager. If a file could not be found (on the thread context classloader, on the application's classpath, or on the system classpath), then the name is assumed to reference an existing Infinispan CacheContainer instance via a valid JNDI name or as the name of a service as defined by the local environment. If not specified or no such container is found, then the same cache manager used for the content storage will be used."
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "chunkSize" : {
                                    "type" : "integer",
                                    "default" : 1048576,
                                    "description" : "The size (in bytes) of a segment which dictates into how many segments a binary value is split when stored in the cache. Each chunk represents an entry in the cache"
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : false,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of a composite binary store.",
                                    "enum" : [ "composite" ]
                                },
                                "namedStores" : {
                                    "type" : "object",
                                    "required" : true,
                                    "description" : "A map of implementer-supplied keys to other binaryStorage types",
                                    "additionalProperties" : {
                                        "type" : [
                                            {
                                                "type" : "object",
                                                "additionalProperties" : false,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of the transient binary store, which keeps BINARY values on disk in the temp directory.",
                                                        "enum" : [ "transient" ]
                                                    },
                                                    "storeName" : {
                                                        "type" : "string",
                                                        "description" : "A short, implementer-supplied name for this binary store"
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            },
                                            {
                                                "type" : "object",
                                                "additionalProperties" : false,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of the file-based binary store, which keeps BINARY values on disk in the specified directory.",
                                                        "enum" : [ "file" ]
                                                    },
                                                    "storeName" : {
                                                        "type" : "string",
                                                        "description" : "A short, implementer-supplied name for this binary store"
                                                    },
                                                    "directory" : {
                                                        "type" : "string",
                                                        "required" : true,
                                                        "description" : "The location of the directory the file system under which the BINARY values should be stored. The value can be an absolute or relative path."
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            },
                                            {
                                                "type" : "object",
                                                "additionalProperties" : false,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of the database binary store, which stores BINARY values in a JDBC-compatible database accessed through a JDBC DataSource registered in JNDI.",
                                                        "enum" : [ "database" ]
                                                    },
                                                    "storeName" : {
                                                        "type" : "string",
                                                        "description" : "A short, implementer-supplied name for this binary store"
                                                    },
                                                    "dataSourceJndiName" : {
                                                        "type" : "string",
                                                        "description" : "The name in JNDI where the JDBC DataSource is registered that should be used for binary storage.",
                                                        "required" : true,
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            },
                                            {
                                                "type" : "object",
                                                "additionalProperties" : true,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of the database binary store, which stores BINARY values in a JDBC-compatible database accessed through a JDBC connection established by specifying the driver class, URL, and other properties",
                                                        "enum" : [ "database" ]
                                                    },
                                                    "storeName" : {
                                                        "type" : "string",
                                                        "description" : "A short, implementer-supplied name for this binary store"
                                                    },
                                                    "driverClass" : {
                                                        "type" : "string",
                                                        "description" : "The full-qualified name of the JDBC driver class.",
                                                        "required" : true,
                                                    },
                                                    "url" : {
                                                        "type" : "string",
                                                        "description" : "The URL to be used to establish the database connection.",
                                                        "required" : true,
                                                    },
                                                    "username" : {
                                                        "type" : "string",
                                                        "description" : "The (optional) username for the database connection. Many JDBC drivers accept specifying the username in the URL.",
                                                        "required" : false,
                                                    },
                                                    "password" : {
                                                        "type" : "string",
                                                        "description" : "The (optional) password for the database connection. Many JDBC drivers accept specifying the password in the URL.",
                                                        "required" : false,
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            },
                                            {
                                                "type" : "object",
                                                "additionalProperties" : false,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of the Infinispan binary store, which stores BINARY values in a Infinispan cache.",
                                                        "enum" : [ "cache" ]
                                                    },
                                                    "storeName" : {
                                                        "type" : "string",
                                                        "description" : "A short, implementer-supplied name for this binary store"
                                                    },
                                                    "dataCacheName" : {
                                                        "type" : "string",
                                                        "required" : true,
                                                        "description" : "The name of the Infinispan cache where BINARY values are stored as chunks."
                                                    },
                                                    "metadataCacheName" : {
                                                        "type" : "string",
                                                        "required" : true,
                                                        "description" : "The name of the Infinispan cache where metadata of the values should be stored."
                                                    },
                                                    "cacheConfiguration" : {
                                                        "type" : "string",
                                                        "description" : "The name of the Infinispan configuration file for creating a new cache manager. If a file could not be found (on the thread context classloader, on the application's classpath, or on the system classpath), then the name is assumed to reference an existing Infinispan CacheContainer instance via a valid JNDI name or as the name of a service as defined by the local environment. If not specified or no such container is found, then the same cache manager used for the content storage will be used."
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            },
                                            {
                                                "type" : "object",
                                                "additionalProperties" : true,
                                                "properties" : {
                                                    "type" : {
                                                        "type" : "string",
                                                        "description" : "The specification of a custom binary store.",
                                                        "enum" : [ "custom" ]
                                                    },
                                                    "classname" : {
                                                        "type" : "string",
                                                        "required" : true,
                                                        "description" : "The fully-qualified name of the 'org.modeshape.jcr.value.binary.BinaryStore' implementation class."
                                                    },
                                                    "classloader" : {
                                                        "type" : "string",
                                                        "description" : "The optional name of the classloader that should be used to load the BinaryStore implementation class. If empty or not provided, the classpath accessible to ModeShape will be used."
                                                    },
                                                    "description" : {
                                                        "type" : "string",
                                                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                                    },
                                                }
                                            }

                                        ]
                                    },
                                    "properties": {
                                        "default" : {
                                            "type" : "object",
                                            "required" : true,
                                            "description" : "a binaryStorage configuration element for the binaryStore that is used in the absence of applicable storage hints"
                                        }
                                    }
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                        {
                            "type" : "object",
                            "additionalProperties" : true,
                            "properties" : {
                                "type" : {
                                    "type" : "string",
                                    "description" : "The specification of a custom binary store.",
                                    "enum" : [ "custom" ]
                                },
                                "classname" : {
                                    "type" : "string",
                                    "required" : true,
                                    "description" : "The fully-qualified name of the 'org.modeshape.jcr.value.binary.BinaryStore' implementation class."
                                },
                                "classloader" : {
                                    "type" : "string",
                                    "description" : "The optional name of the classloader that should be used to load the BinaryStore implementation class. If empty or not provided, the classpath accessible to ModeShape will be used."
                                },
                                "minimumBinarySizeInBytes" : {
                                    "type" : "integer",
                                    "default" : 4096,
                                    "description" : "The size threshold that dictates whether binary values should be stored in the binary store. Binary values smaller than this value are stored with the node, whereas binary values with a size equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is '4096' bytes, or 4 kilobytes."
                                },
                                "minimumStringSize" : {
                                    "type" : "integer",
                                    "description" : "The size threshold that dictates whether string values should be stored in the binary store. String values shorter than this length are stored with the node, whereas strings with a length equal to or greater than this limit will be stored separately from the node and in the binary store, keyed by the SHA-1 hash of the value. This is a space and performance optimization that stores each unique large value only once. The default value is to match the 'minimumBinarySizeInBytes' value."
                                },
                                "description" : {
                                    "type" : "string",
                                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                                },
                            }
                        },
                    ]
                },
            }
        },
        "workspaces" : {
            "type" : "object",
            "additionalProperties" : false,
            "properties" : {
                "predefined" : {
                    "type" : "array",
                    "uniqueItems" : true,
                    "description" : "The names of the workspaces that are defined to exist."
                },
                "default" : {
                    "type" : "string",
                    "description" : "The name of the workspace that should be used when not specified by calls to login to a Session."
                },
                "allowCreation" : {
                    "type" : "boolean",
                    "default" : true,
                    "description" : "Specifies whether users can create additional workspaces beyond the predefined, system, and default workspaces. The default value is 'true'."
                },
                "cacheConfiguration" : {
                    "type" : "string",
                    "description" : "The location of the file defining the Infinispan configuration for the repository's workspace caches. If a file could not be found (on the thread context classloader, on the application's classpath, or on the system classpath), then the name is used to look in JNDI for an Infinispan CacheContainer instance. If no such container is found, then a value of 'org/modeshape/jcr/deafult-workspace-cache-config.xml' is used, which is the default configuration provided by ModeShape."
                },
                "initialContent" : {
                    "type" : "object",
                    "uniqueItems" : true,
                    "description" : "The workspace name to initial content xml mapping that allows initial content to be imported into workspace. The '*' string is used when a default content should be imported into all the workspaces.",
                    "additionalProperties" : true
                },
                "description" : {
                    "type" : "string",
                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                }
            }
        },
        "externalSources" : {
            "type" : "object",
            "description" : "The named set of external sources that can access content in external systems.",
            "required" : false,
            "additionalProperties" : {
                "type" : "object",
                "additionalProperties" : true,
                "description" : "Specification of a single external source configuration.",
                "properties" : {
                    "classname" : {
                        "type" : "string",
                        "required" : true,
                        "description" : "The fully-qualified name of the 'org.modeshape.jcr.federation.Connector' subclass. A shortcut for built-in connectors is to just use the name of the class (without the package specification)."
                    },
                    "classloader" : {
                        "type" : "string",
                        "description" : "The optional name of the classloader that should be used to load the connector class. If empty or not provided, the classpath accessible to ModeShape will be used."
                    },
                    "queryable" : {
                        "type" : "boolean",
                        "default" : true,
                        "description" : "Optional flag which indicates whether this source's content should be indexed or not by the repository. By default, all content is queryable "
                    },
                    "cacheTtlSeconds" : {
                        "type" : "integer",
                        "description" : "The optional number of seconds which an external node should be held in the workspace cache. If not specified, the effective TTL is deferred to the workspace cache configuration. If negative, an entry will be cached forever."
                    },
                    "readonly" : {
                        "type" : "boolean",
                        "default" : false,
                        "description" : "Optional flag which indicates if an external source should support both writing and reading, or just reading. This flag is ignored for read-only sources and makes sense only for writable sources."
                    },
                    "projections" : {
                        "type" : "array",
                        "items" : {
                            "type" : "string",
                            "pattern" : "(\w+):((([/]([^/=]|(\\.))+)+)|[/])\s*=>\s*((([/]([^/]|(\\.))+)+)|[/])"
                        },
                        "description" : "The expressions that describes the projection path expressions, in the format wsName:/projectedPath => externalPath"
                    },
                    "description" : {
                        "type" : "string",
                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                    },
                }
            }
        },
        "security" : {
            "type" : "object",
            "additionalProperties" : false,
            "properties" : {
                "description" : {
                    "type" : "string",
                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                },
                "jaas" : {
                    "type" : "object",
                    "description" : "The configuration of the authentication/authorization provider that uses JAAS.",
                    "properties" : {
                        "policyName" : {
                            "type" : "string",
                            "default" : "modeshape-jcr",
                            "description" : "The name of the JAAS policy that should be to validate credentials. If not specified, JAAS authentication is not used."
                        },
                        "description" : {
                            "type" : "string",
                            "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                        },
                    }
                },
                "anonymous" : {
                    "type" : "object",
                    "description" : "The configuration of the authentication/authorization provider that uses JAAS.",
                    "properties" : {
                        "roles" : {
                            "type" : "array",
                            "default" : [ "readonly","readwrite", "admin"],
                            "items" : {
                                "type" : "string",
                            },
                            "uniqueItems" : true, 
                            "description" : "An array of roles provided for anonymous access. Anonymous logins will be disabled if no value or an empty value is provided."
                        },
                        "username" : {
                            "type" : "string",
                            "default" : "",
                            "description" : "The username that should be used for anonymous users."
                        },
                        "useOnFailedLogin" : {
                            "type" : "boolean",
                            "default" : false,
                            "description" : "Indicates whether a failed attempt to authenticate should automatically fall back to attempt to anonymous access instead. If anonymous access is not enabled, then failed login attempts will still cause a LoginException to be thrown. The default value is 'false'."
                        },
                        "description" : {
                            "type" : "string",
                            "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                        },
                    }
                },
                "providers" : {
                    "type" : "array",
                    "description" : "The named set of security provider configurations",
                    "items" : {
                        "type" : "object",
                        "description" : "Specification of a security provider configuration.",
                        "additionalProperties" : true,
                        "properties" : {
                            "classname" : {
                                "type" : "string",
                                "required" : true,
                                "description" : "The fully-qualified name of the 'org.modeshape.jcr.security.AuthenticationProvider' implementation class. Aliases can be used for the built-in providers: 'jaas' for the JAAS provider, and 'servlet' for the Servlet provider."
                            },
                            "classloader" : {
                                "type" : "string",
                                "description" : "The optional name of the classloader that should be used to load the AuthenicationProvider implementation class. If empty or not provided, the classpath accessible to ModeShape will be used."
                            },
                            "name" : {
                                "type" : "string",
                                "description" : "The optional unqiue name of the security provider configuration, used for administration and reporting. If not specified, the classname will be used."
                            },
                            "description" : {
                                "type" : "string",
                                "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                            },
                        }
                    }
                }
            }
        },
        "indexProviders" : {
            "type" : "object",
            "description" : "The named set of index provider configurations",
            "required" : false,
            "additionalProperties" : {
                "type" : "object",
                "additionalProperties" : true,
                "description" : "Specification of an index provider configuration.",
                "properties" : {
                    "classname" : {
                        "type" : "string",
                        "required" : true,
                        "description" : "The fully-qualified name of the 'org.modeshape.jcr.spi.index.provider.IndexProvider' implementation class."
                    },
                    "classloader" : {
                        "type" : "string",
                        "description" : "The optional name of the classloader that should be used to load the QueryIndexService implementation class. If empty or not provided, the classpath accessible to ModeShape will be used."
                    },
                    "description" : {
                        "type" : "string",
                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                    },
                }
            }
        },
        "indexes" : {
            "type" : "object",
            "description" : "The specification of the indexes used in the repository.",
            "required" : false,
            "additionalProperties" : {
                "type" : "object",
                "additionalProperties" : true,
                "description" : "Specification of a sequencer configuration.",
                "properties" : {
                    "description" : {
                        "type" : "string",
                        "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                    },
                    "provider" : {
                        "type" : "string",
                        "description" : "The name of the index provider that is responsible for this index. If the name does not match that of an index provider, the index will be disabled."
                    },
                    "workspaces" : {
                        "type" : "string",
                        "default" : "*",
                        "description" : "The regular expression pattern that stipulates which workspaces this index is to be used for. By default, the pattern is '*', which means all workspaces. A literal string will match the exact workspace name. Any workspaces that do not match this pattern will not use this index."
                    },
                    "kind" : {
                        "type" : "string",
                        "enum" : ["unique","value","enumerated","text","nodetype"],
                        "default" : "value",
                        "description" : "The kind of the index."
                    },
                    "synchronous" : {
                        "type" : "boolean",
                        "default" : "true",
                        "description" : "Whether the index is updated synchronously before the save method returns. The default is 'true'."
                    },
                    "nodeType" : {
                        "type" : "string",
                        "default" : "nt:base",
                        "description" : "The name of the node type for which this index is define. This index will include data only from nodes that are of this type (implicitly or explicitly)."
                    },
                    "columns" : {
                        "type" : "string",
                        "pattern" : "([^(,]+)[(]([^),]+)[)](,([^(,]+)[(]([^),]+)[)])*",
                        "description" : "A comma-separated list of column definitions, where each column definition consists of a property name and in parentheses the property type. For example, 'jcr:mixin(STRING)' is a column definition that specifies the 'jcr:mixin' property and 'STRING' type."
                    },
                }
            }
        },
        "textExtraction" : {
            "type" : "object",
            "additionalProperties" : false,
            "description" : "The extractor configurations.",
            "properties" : {
                "threadPool" : {
                    "type" : "string",
                    "default" : "modeshape-workers",
                    "description" : "Name of the thread pool that should be used for text extracting. Thread pools are named globally within a single ModeShape engine, and by default all repositories use the same thread pool for sequencing and indexing."
                },
                "extractors" : {
                    "type" : "object",
                    "description" : "The container for the list of configured text extractors",
                    "additionalProperties" : {
                        "type" : "object",
                        "description" : "Specification of a text extractor configuration.",
                        "additionalProperties" : true,
                        "properties" : {
                            "classname" : {
                                "type" : "string",
                                "required" : true,
                                "description" : "The fully-qualified name of the 'org.modeshape.jcr.text.TextExtractor' implementation class. A shortcut for built-in extractors is to just specify the name of the class (without the package specifciation)."
                            },
                            "classloader" : {
                                "type" : "string",
                                "description" : "The optional name of the classloader that should be used to load the extract class. If empty or not provided, the classpath accessible to ModeShape will be used."
                            },
                            "name" : {
                                "type" : "string",
                                "description" : "The optional unique name of the extractor configuration, used for administration and reporting purposes. If not specified, the extractor's classname will be used."
                            },
                            "description" : {
                                "type" : "string",
                                "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                            }
                        }
                    }
                 }
            }
        },
        "sequencing" : {
            "type" : "object",
            "description" : "The options for sequencing.",
            "additionalProperties" : false,
            "properties" : {
                "description" : {
                    "type" : "string",
                    "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                },
                "removeDerivedContentWithOriginal" : {
                    "type" : "boolean",
                    "default" : true,
                    "description" : "DEPRECATED: This was never used and is currently ignored."
                },
                "threadPool" : {
                    "type" : "string",
                    "default" : "modeshape-workers",
                    "description" : "Name of the thread pool that should be used for sequencing. Thread pools are named globally within a single ModeShape engine, and by default all repositories use the same thread pool for sequencing and indexing."
                },
                "sequencers" : {
                    "type" : "object",
                    "description" : "The named set of sequencer configurations",
                    "required" : false,
                    "additionalProperties" : {
                        "type" : "object",
                        "additionalProperties" : true,
                        "description" : "Specification of a sequencer configuration.",
                        "properties" : {
                            "classname" : {
                                "type" : "string",
                                "required" : true,
                                "description" : "The fully-qualified name of the 'org.modeshape.jcr.api.sequencer.Sequencer' subclass. A shortcut for built-in sequencers is to just use the name of the class (without the package specification)."
                            },
                            "classloader" : {
                                "type" : "string",
                                "description" : "The optional name of the classloader that should be used to load the sequencer class. If empty or not provided, the classpath accessible to ModeShape will be used."
                            },
                            "pathExpressions" : {
                                "type" : "array",
                                "items" : {
                                    "type" : "string"
                                },
                                "description" : "The expressions that describes the paths upon which this sequencer operates and the paths where the sequencer output is written."
                            },
                            "pathExpression" : {
                                "type" : "string",
                                "description" : "The expressions that describes a single path expression"
                            },
                            "acceptedMimeTypes" : {
                                "type" : "array",
                                "items" : {
                                    "type" : "string",
                                },
                                "uniqueItems" : true, 
                                "description" : "The optional MIME types for the kind of content that this sequencer configuration should process. If not specified, then the sequencer class' default MIME types will be used. Set to an empty array to forcibly allow processing content with any MIME type."
                            },
                            "description" : {
                                "type" : "string",
                                "description" : "The optional description of this section of the configuration. It is unused by ModeShape."
                            },
                        }
                    }
                }
            }
        },
        "node-types" : {
            "type" : "array",
            "description" : "The set of cnd files which should be imported at start-up",
            "items" : {
                "type" : "string",
                "description" : "A list of cnd files which are accessible on the classpath, from which initial content will be imported"
            }
        },
        "journaling" : {
            "type" : "object",
            "description" : "The journal configuration which enables ModeShape to store a local journal of all the changes",
            "properties" : {
                "location" : {
                    "type" : "string",
                    "description" : "The folder where the journal entries are stored by ModeShape",
                    "default" : "modeshape/journal"
                },
                "maxDaysToKeepRecords" : {
                    "type" : "integer",
                    "description" : "The maximum number of days a journal entry should be kept on disk before removed. By default, no entries are removed",
                    "default" : -1
                },
                "asyncWritesEnabled" : {
                    "type" : "boolean",
                    "description" : "Whether journal entries should be persisted to disk asynchronously or not",
                    "default" : false
                },
                "threadPool" : {
                    "type" : "string",
                    "default" : "modeshape-journaling-gc",
                    "description" : "Name of the thread pool that should be used when cleaning up older journal entries"
                },
                "initialTime" : {
                    "type" : "string",
                    "default" : "00:00",
                    "pattern" : "(([0-1][0-9])|([2][0-3])):[0-5][0-9]",
                    "description" : "The local time that the first journal garbage collection process should be run. Garbage collection may be relatively expensive, as it involves scanning all persisted content, so it's recommended that this be done during off hours if possible. By default, garbage collection is run at midnight (local time) after the repository is started."
                },
                "intervalInHours" : {
                    "type" : "integer",
                    "default" : "24",
                    "description" : "The number of hours between journal garbage collection runs. By default the interval is 24 hours (meaning it runs once per day)."
                }
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy