Interface PluggableBackendCfgClient

    • Method Detail

      • getBaseDn

        @MandatoryProperty
        SortedSet<ValueOrExpression<Dn>> getBaseDn()
        Gets the "base-dn" property.

        Specifies the base DN(s) for the data that the backend handles.

        A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN.

        Returns:
        Returns the values of the "base-dn" property.
      • setBaseDn

        @MandatoryProperty
        void setBaseDn​(Collection<ValueOrExpression<Dn>> values)
                throws PropertyException
        Sets the "base-dn" property.

        Specifies the base DN(s) for the data that the backend handles.

        A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN.

        Parameters:
        values - The values of the "base-dn" property.
        Throws:
        PropertyException - If one or more of the new values are invalid.
      • getCipherKeyLength

        ValueOrExpression<Integer> getCipherKeyLength()
        Gets the "cipher-key-length" property.

        Specifies the key length in bits for the preferred cipher.

        Default value: 128

        Returns:
        Returns the value of the "cipher-key-length" property.
      • setCipherKeyLength

        void setCipherKeyLength​(ValueOrExpression<Integer> value)
                         throws PropertyException
        Sets the "cipher-key-length" property.

        Specifies the key length in bits for the preferred cipher.

        Parameters:
        value - The value of the "cipher-key-length" property.
        Throws:
        PropertyException - If the new value is invalid.
      • getCipherTransformation

        ValueOrExpression<String> getCipherTransformation()
        Gets the "cipher-transformation" property.

        Specifies the cipher for the directory server using the syntax algorithm/mode/padding.

        The full transformation is required: specifying only an algorithm and allowing the cipher provider to supply the default mode and padding is not supported, because there is no guarantee these default values are the same among different implementations. Some cipher algorithms do not have a mode or padding, hence the fields must be specified using NONE as mode and NoPadding as padding. For example, ChaCha20/NONE/NoPadding.

        Default value: AES/GCM/NoPadding

        Returns:
        Returns the value of the "cipher-transformation" property.
      • setCipherTransformation

        void setCipherTransformation​(ValueOrExpression<String> value)
                              throws PropertyException
        Sets the "cipher-transformation" property.

        Specifies the cipher for the directory server using the syntax algorithm/mode/padding.

        The full transformation is required: specifying only an algorithm and allowing the cipher provider to supply the default mode and padding is not supported, because there is no guarantee these default values are the same among different implementations. Some cipher algorithms do not have a mode or padding, hence the fields must be specified using NONE as mode and NoPadding as padding. For example, ChaCha20/NONE/NoPadding.

        Parameters:
        value - The value of the "cipher-transformation" property.
        Throws:
        PropertyException - If the new value is invalid.
      • isCompactEncoding

        ValueOrExpression<Boolean> isCompactEncoding()
        Gets the "compact-encoding" property.

        Indicates whether the backend should use a compact form when encoding entries by compressing the attribute descriptions and object class sets.

        Note that this property applies only to the entries themselves and does not impact the index data. It will also replace the attribute descriptions used in add and modify operations with normalized ones from the schema.

        Default value: true

        Returns:
        Returns the value of the "compact-encoding" property.
      • setCompactEncoding

        void setCompactEncoding​(ValueOrExpression<Boolean> value)
                         throws PropertyException
        Sets the "compact-encoding" property.

        Indicates whether the backend should use a compact form when encoding entries by compressing the attribute descriptions and object class sets.

        Note that this property applies only to the entries themselves and does not impact the index data. It will also replace the attribute descriptions used in add and modify operations with normalized ones from the schema.

        Parameters:
        value - The value of the "compact-encoding" property.
        Throws:
        PropertyException - If the new value is invalid.
      • isConfidentialityEnabled

        ValueOrExpression<Boolean> isConfidentialityEnabled()
        Gets the "confidentiality-enabled" property.

        Indicates whether the backend should make entries in database files readable only by Directory Server.

        Confidentiality is achieved by encrypting entries before writing them to the underlying storage. Entry encryption will protect data on disk from unauthorised parties reading the files; for complete protection, also set confidentiality for sensitive attributes indexes. The property cannot be set to false if some of the indexes have confidentiality set to true.

        Default value: false

        Returns:
        Returns the value of the "confidentiality-enabled" property.
      • setConfidentialityEnabled

        void setConfidentialityEnabled​(ValueOrExpression<Boolean> value)
                                throws PropertyException
        Sets the "confidentiality-enabled" property.

        Indicates whether the backend should make entries in database files readable only by Directory Server.

        Confidentiality is achieved by encrypting entries before writing them to the underlying storage. Entry encryption will protect data on disk from unauthorised parties reading the files; for complete protection, also set confidentiality for sensitive attributes indexes. The property cannot be set to false if some of the indexes have confidentiality set to true.

        Parameters:
        value - The value of the "confidentiality-enabled" property.
        Throws:
        PropertyException - If the new value is invalid.
      • isEntriesCompressed

        ValueOrExpression<Boolean> isEntriesCompressed()
        Gets the "entries-compressed" property.

        Indicates whether the backend should attempt to compress entries before storing them in the database.

        Note that this property applies only to the entries themselves and does not impact the index data. Further, the effectiveness of the compression is based on the type of data contained in the entry.

        Default value: false

        Returns:
        Returns the value of the "entries-compressed" property.
      • setEntriesCompressed

        void setEntriesCompressed​(ValueOrExpression<Boolean> value)
                           throws PropertyException
        Sets the "entries-compressed" property.

        Indicates whether the backend should attempt to compress entries before storing them in the database.

        Note that this property applies only to the entries themselves and does not impact the index data. Further, the effectiveness of the compression is based on the type of data contained in the entry.

        Parameters:
        value - The value of the "entries-compressed" property.
        Throws:
        PropertyException - If the new value is invalid.
      • getImportOffheapMemorySize

        ValueOrExpression<Long> getImportOffheapMemorySize()
        Gets the "import-offheap-memory-size" property.

        Specifies the amount of off-heap memory dedicated to the online operation (import-ldif, rebuild-index).

        Returns:
        Returns the value of the "import-offheap-memory-size" property.
      • setImportOffheapMemorySize

        void setImportOffheapMemorySize​(ValueOrExpression<Long> value)
                                 throws PropertyException
        Sets the "import-offheap-memory-size" property.

        Specifies the amount of off-heap memory dedicated to the online operation (import-ldif, rebuild-index).

        Parameters:
        value - The value of the "import-offheap-memory-size" property.
        Throws:
        PropertyException - If the new value is invalid.
      • getIndexEntryLimit

        ValueOrExpression<Integer> getIndexEntryLimit()
        Gets the "index-entry-limit" property.

        Specifies the maximum number of entries that is allowed to match a given index key before that particular index key is no longer maintained.

        This property is analogous to the ALL IDs threshold in the Sun Java System Directory Server. Note that this is the default limit for the backend, and it may be overridden on a per-attribute basis. A value of 0 means there is no limit. Changing the index entry limit significantly can result in serious performance degradation. Please read the documentation before changing this setting.

        Default value: 4000

        Returns:
        Returns the value of the "index-entry-limit" property.
      • setIndexEntryLimit

        void setIndexEntryLimit​(ValueOrExpression<Integer> value)
                         throws PropertyException
        Sets the "index-entry-limit" property.

        Specifies the maximum number of entries that is allowed to match a given index key before that particular index key is no longer maintained.

        This property is analogous to the ALL IDs threshold in the Sun Java System Directory Server. Note that this is the default limit for the backend, and it may be overridden on a per-attribute basis. A value of 0 means there is no limit. Changing the index entry limit significantly can result in serious performance degradation. Please read the documentation before changing this setting.

        Parameters:
        value - The value of the "index-entry-limit" property.
        Throws:
        PropertyException - If the new value is invalid.
      • isIndexFilterAnalyzerEnabled

        ValueOrExpression<Boolean> isIndexFilterAnalyzerEnabled()
        Gets the "index-filter-analyzer-enabled" property.

        Indicates whether to gather statistical information about the search filters processed by the directory server while evaluating the usage of indexes.

        Analyzing indexes requires gathering search filter usage patterns from user requests, especially for values as specified in the filters and subsequently looking the status of those values into the index files. When a search requests is processed, internal or user generated, a first phase uses indexes to find potential entries to be returned. Depending on the search filter, if the index of one of the specified attributes matches too many entries (exceeds the index entry limit), the search becomes non-indexed. In any case, all entries thus gathered (or the entire DIT) are matched against the filter for actually returning the search result.

        Default value: false

        Returns:
        Returns the value of the "index-filter-analyzer-enabled" property.
      • setIndexFilterAnalyzerEnabled

        void setIndexFilterAnalyzerEnabled​(ValueOrExpression<Boolean> value)
                                    throws PropertyException
        Sets the "index-filter-analyzer-enabled" property.

        Indicates whether to gather statistical information about the search filters processed by the directory server while evaluating the usage of indexes.

        Analyzing indexes requires gathering search filter usage patterns from user requests, especially for values as specified in the filters and subsequently looking the status of those values into the index files. When a search requests is processed, internal or user generated, a first phase uses indexes to find potential entries to be returned. Depending on the search filter, if the index of one of the specified attributes matches too many entries (exceeds the index entry limit), the search becomes non-indexed. In any case, all entries thus gathered (or the entire DIT) are matched against the filter for actually returning the search result.

        Parameters:
        value - The value of the "index-filter-analyzer-enabled" property.
        Throws:
        PropertyException - If the new value is invalid.
      • getIndexFilterAnalyzerMaxFilters

        ValueOrExpression<Integer> getIndexFilterAnalyzerMaxFilters()
        Gets the "index-filter-analyzer-max-filters" property.

        The maximum number of search filter statistics to keep.

        When the maximum number of search filter is reached, the least used one will be deleted.

        Default value: 25

        Returns:
        Returns the value of the "index-filter-analyzer-max-filters" property.
      • setIndexFilterAnalyzerMaxFilters

        void setIndexFilterAnalyzerMaxFilters​(ValueOrExpression<Integer> value)
                                       throws PropertyException
        Sets the "index-filter-analyzer-max-filters" property.

        The maximum number of search filter statistics to keep.

        When the maximum number of search filter is reached, the least used one will be deleted.

        Parameters:
        value - The value of the "index-filter-analyzer-max-filters" property.
        Throws:
        PropertyException - If the new value is invalid.
      • getPreloadTimeLimit

        ValueOrExpression<Long> getPreloadTimeLimit()
        Gets the "preload-time-limit" property.

        Specifies the length of time that the backend is allowed to spend "pre-loading" data when it is initialized.

        The pre-load process is used to pre-populate the database cache, so that it can be more quickly available when the server is processing requests. A duration of zero means there is no pre-load.

        Default value: 0s

        Returns:
        Returns the value of the "preload-time-limit" property.
      • setPreloadTimeLimit

        void setPreloadTimeLimit​(ValueOrExpression<Long> value)
                          throws PropertyException
        Sets the "preload-time-limit" property.

        Specifies the length of time that the backend is allowed to spend "pre-loading" data when it is initialized.

        The pre-load process is used to pre-populate the database cache, so that it can be more quickly available when the server is processing requests. A duration of zero means there is no pre-load.

        Parameters:
        value - The value of the "preload-time-limit" property.
        Throws:
        PropertyException - If the new value is invalid.
      • createBackendVlvIndex

        <C extends BackendVlvIndexCfgClient> C createBackendVlvIndex​(ManagedObjectDefinition<C,​? extends BackendVlvIndexCfg> d,
                                                                     String name,
                                                                     Collection<PropertyException> exceptions)
                                                              throws IllegalManagedObjectNameException
        Creates a new Backend Vlv Index. The new Backend Vlv Index will initially not contain any property values (including mandatory properties). Once the Backend Vlv Index has been configured it can be added to the server using the ConfigurationClient.commit() method.
        Type Parameters:
        C - The type of the Backend Vlv Index being created.
        Parameters:
        d - The definition of the Backend Vlv Index to be created.
        name - The name of the new Backend Vlv Index.
        exceptions - An optional collection in which to place any PropertyExceptions that occurred whilst attempting to determine the default values of the Backend Vlv Index. This argument can be null.
        Returns:
        Returns a new Backend Vlv Index configuration instance.
        Throws:
        IllegalManagedObjectNameException - If the name of the new Backend Vlv Index is invalid.