Argus DataStores is a simple key/value database which is divided into multiple named stores, and for each store data is separated per customer. Some stores are marked as global, meaning that it cannot contain customer-specific data. The query API allows querying a single named store for data across multiple customers.
Datastores may be integrated with Argus Event Filters, allowing the Argus analysis system to distribute the datastores to processing nodes and event filters to use the data in event queries.
A datastore is configured by a descriptor which will control its behaviour and data retention. Datastores are either LOCAL or CENTRAL. LOCAL datastores have no data stored in the central Argus database and are only utilized in the distributed system. Only data of CENTRAL datastores can be added and queried through the API. A descriptor can configure a retention policy. Data which is older than the configured retention will be automatically deleted from the datastore.
Entries inside one datastore can be of type MAP or LIST. MAP entries are key/value pairs while entries of type LIST only consist of a key, i.e. a key exist inside a datastore or not. The values of MAP entries are unstructured and clients control their format. If a datastore is global entries are not bound to a customer. With customer-specific datastores the same key can exist inside the same datastore for different customers, i.e. a key is only unique for the same customer.
Argus controls access to datastores on a role-based model which allows granting read/write or read-only access to datastores per customer. Inside one datastore users can only access entries for the customer(s) they have be granted access to. Additionally, a user needs special permissions to access a global datastore.
Granular access per datastore is not supported. When granting users access to datastores for a customer, this grants the user access to ALL datastores for that customer.
Please read the General Integration Guide to learn the general concepts and common data structures used throughout the Argus API.