Interface PluggableBackendCfgClient

All Superinterfaces:
BackendCfgClient, ConfigurationClient, LocalBackendCfgClient
All Known Subinterfaces:
JeBackendCfgClient

public interface PluggableBackendCfgClient extends LocalBackendCfgClient
A client-side interface for reading and modifying Pluggable Backend settings.

A Pluggable Backend stores application data in a pluggable database.

  • Method Details

    • definition

      Get the configuration definition associated with this Pluggable Backend.
      Specified by:
      definition in interface BackendCfgClient
      Specified by:
      definition in interface ConfigurationClient
      Specified by:
      definition in interface LocalBackendCfgClient
      Returns:
      Returns the configuration definition associated with this Pluggable Backend.
    • 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

      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.
    • getWritabilityMode

      Gets the "writability-mode" property.

      Specifies the behavior that the backend should use when processing write operations.

      Default value: enabled

      Specified by:
      getWritabilityMode in interface LocalBackendCfgClient
      Returns:
      Returns the value of the "writability-mode" property.
    • setWritabilityMode

      Sets the "writability-mode" property.

      Specifies the behavior that the backend should use when processing write operations.

      Specified by:
      setWritabilityMode in interface LocalBackendCfgClient
      Parameters:
      value - The value of the "writability-mode" property.
      Throws:
      PropertyException - If the new value is invalid.
    • listBackendIndexes

      String[] listBackendIndexes() throws ConcurrentModificationException, LdapException
      Lists the Backend Indexes.
      Returns:
      Returns an array containing the names of the Backend Indexes.
      Throws:
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.
    • getBackendIndex

      Gets the named Backend Index.
      Parameters:
      name - The name of the Backend Index to retrieve.
      Returns:
      Returns the named Backend Index.
      Throws:
      DefinitionDecodingException - If the named Backend Index was found but its type could not be determined.
      ManagedObjectDecodingException - If the named Backend Index was found but one or more of its properties could not be decoded.
      ManagedObjectNotFoundException - If the named Backend Index was not found on the server.
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.
    • createBackendIndex

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

      Removes the named Backend Index.
      Parameters:
      name - The name of the Backend Index to remove.
      Throws:
      ManagedObjectNotFoundException - If the Backend Index does not exist.
      OperationRejectedException - If the server refuses to remove the Backend Index due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.
    • listBackendVlvIndexes

      String[] listBackendVlvIndexes() throws ConcurrentModificationException, LdapException
      Lists the Backend Vlv Indexes.
      Returns:
      Returns an array containing the names of the Backend Vlv Indexes.
      Throws:
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.
    • getBackendVlvIndex

      Gets the named Backend Vlv Index.
      Parameters:
      name - The name of the Backend Vlv Index to retrieve.
      Returns:
      Returns the named Backend Vlv Index.
      Throws:
      DefinitionDecodingException - If the named Backend Vlv Index was found but its type could not be determined.
      ManagedObjectDecodingException - If the named Backend Vlv Index was found but one or more of its properties could not be decoded.
      ManagedObjectNotFoundException - If the named Backend Vlv Index was not found on the server.
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.
    • 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.
    • removeBackendVlvIndex

      Removes the named Backend Vlv Index.
      Parameters:
      name - The name of the Backend Vlv Index to remove.
      Throws:
      ManagedObjectNotFoundException - If the Backend Vlv Index does not exist.
      OperationRejectedException - If the server refuses to remove the Backend Vlv Index due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).
      ConcurrentModificationException - If this Pluggable Backend has been removed from the server by another client.
      LdapException - If any other error occurs.