NationalSecurityAgency/datawave-dictionary-service

The Dictionary service provides access to the data dictionary and edge dictionary. These services provide metadata about fields that are stored in Accumulo.

Java

27

178 commits

updated Mar 11, 2025

See the code

README

Dictionary Service

Apache License Build Status

The Dictionary service provides access to the data dictionary and edge dictionary which provide metadata about fields that are stored in Accumulo. The Dictionary service also supports manipulation of models which are contained in the data dictionary table.

Root Context

https://host:port/dictionary/


Data Dictionary

The root context for all data dictionary operations is:

MethodOperationDescriptionRequest BodyVersion
GET/Retrieves the data dictionaryN/AV1, V2
GET/DescriptionsRetrieves all descriptions from the dictionaryN/AV1, V2
POST/DescriptionsUploads a set of descriptions into the dictionaryDefaultFieldsV1, V2
POST/Descriptions(Administrator credentials required) Sets the description for a field in a datatypeN/AV1, V2
GET/Descriptions/{datatype}Retrieves all descriptions for a data type from the dictionaryN/AV1, V2
GET/Descriptions/{datatype}/{fieldname}Retrieves from the dictionary the description for a field of a data typeN/AV1, V2
DELETE/Descriptions/{datatype}/{fieldname}(Administrator credentials required) Removes the description from a field of a data typeN/AV1, V2
PUT/Descriptions/{datatype}/{fieldName}/{description}(Administrator credentials required) Sets the description for a field in a datatypeN/AV1, V2

Edge Dictionary

The root context for all edge dictionary operations is:

MethodOperationDescriptionRequest Body
GET/Retrieves the edge dictionaryN/A

Models

The root context for all model operations is:

MethodOperationDescriptionRequest Body
GET/listRetrieves the names of the modelsN/A
GET/{name}(Administrator credentials required) Delete a model with the supplied nameN/A
GET/clone(Administrator credentials required) Copy a modelN/A
GET/{name}Retrieve the model and all of its mappings.N/A
GET/insert(Administrator credentials required) Insert a new field mapping into an existing modelModel
GET/import(Administrator credentials required) Insert a new field mapping into an existing modelModel
GET/delete(Administrator credentials required) Delete field mappings from an existing modelModel

Getting Started

Using DATAWAVE Docker Compose

  • You can go here for more information related to building and starting the dictionary service (as well as other services).

Using an Alternate Way

  1. First, refer to services/README for launching the config, authorization, and audit services.

    • The authorization service should be launched with the mock profile to leverage test PKI materials and associated user configuration (see authorization-mock.yml).
  2. Launch this service as follows, with the remoteauth profile to enable client cert authentication.

    java -jar service/target/dictionary-service*-exec.jar --spring.profiles.active=dev,remoteauth
    
  3. Ensure that the testUser.p12 (password: ChangeIt) cert is imported into your browser, and then visit any of the following:

    See sample_configuration/dictionary-dev.yml and configure as desired

hacktoberfest

NationalSecurityAgency/datawave-dictionary-service

The Dictionary service provides access to the data dictionary and edge dictionary. These services provide metadata about fields that are stored in Accumulo.

Java

27

178 commits

updated Mar 11, 2025

See the code

README

Dictionary Service

Apache License Build Status

The Dictionary service provides access to the data dictionary and edge dictionary which provide metadata about fields that are stored in Accumulo. The Dictionary service also supports manipulation of models which are contained in the data dictionary table.

Root Context

https://host:port/dictionary/


Data Dictionary

The root context for all data dictionary operations is:

MethodOperationDescriptionRequest BodyVersion
GET/Retrieves the data dictionaryN/AV1, V2
GET/DescriptionsRetrieves all descriptions from the dictionaryN/AV1, V2
POST/DescriptionsUploads a set of descriptions into the dictionaryDefaultFieldsV1, V2
POST/Descriptions(Administrator credentials required) Sets the description for a field in a datatypeN/AV1, V2
GET/Descriptions/{datatype}Retrieves all descriptions for a data type from the dictionaryN/AV1, V2
GET/Descriptions/{datatype}/{fieldname}Retrieves from the dictionary the description for a field of a data typeN/AV1, V2
DELETE/Descriptions/{datatype}/{fieldname}(Administrator credentials required) Removes the description from a field of a data typeN/AV1, V2
PUT/Descriptions/{datatype}/{fieldName}/{description}(Administrator credentials required) Sets the description for a field in a datatypeN/AV1, V2

Edge Dictionary

The root context for all edge dictionary operations is:

MethodOperationDescriptionRequest Body
GET/Retrieves the edge dictionaryN/A

Models

The root context for all model operations is:

MethodOperationDescriptionRequest Body
GET/listRetrieves the names of the modelsN/A
GET/{name}(Administrator credentials required) Delete a model with the supplied nameN/A
GET/clone(Administrator credentials required) Copy a modelN/A
GET/{name}Retrieve the model and all of its mappings.N/A
GET/insert(Administrator credentials required) Insert a new field mapping into an existing modelModel
GET/import(Administrator credentials required) Insert a new field mapping into an existing modelModel
GET/delete(Administrator credentials required) Delete field mappings from an existing modelModel

Getting Started

Using DATAWAVE Docker Compose

  • You can go here for more information related to building and starting the dictionary service (as well as other services).

Using an Alternate Way

  1. First, refer to services/README for launching the config, authorization, and audit services.

    • The authorization service should be launched with the mock profile to leverage test PKI materials and associated user configuration (see authorization-mock.yml).
  2. Launch this service as follows, with the remoteauth profile to enable client cert authentication.

    java -jar service/target/dictionary-service*-exec.jar --spring.profiles.active=dev,remoteauth
    
  3. Ensure that the testUser.p12 (password: ChangeIt) cert is imported into your browser, and then visit any of the following:

    See sample_configuration/dictionary-dev.yml and configure as desired

hacktoberfest