Requirements#

Persistency KVS Module Requirements
status: valid
security: NO
safety: ASIL_B
Key Naming
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes.

Key Encoding
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall encode each key as valid UTF-8.

Key Uniqueness
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall guarantee that each key is unique.

Key Length
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall limit the maximum length of a key to 32 bytes.

Value Data Types
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall accept only values of the following data types: Number, String, Null, Array[Value], or Dictionary{Key:Value}.

Value Serialization
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall serialize and deserialize all values to and from JSON.

Value Length
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall limit the maximum length of a value to 1024 bytes.

Value Default
status: valid
security: NO
safety: ASIL_B

The component shall support unset values and shall provide a default value when a value is unset.

Value Reset
status: valid
security: NO
safety: ASIL_B

The component shall allow resetting a value to its default if a default is defined.

Default Value Datatypes
status: valid
security: NO
safety: ASIL_B

The component shall accept default values of only permitted value data types.

Default Value Query
status: valid
security: NO
safety: ASIL_B

The component shall provide an API to retrieve default values.

Default Value Config
status: valid
security: NO
safety: ASIL_B

The component shall allow configuration of default values in code or in a separate configuration file.

Default Value Checksum
status: valid
security: NO
safety: ASIL_B

The component shall secure the configuration file for default values with an associated checksum file when default values are stored in a file.

Constraint Configuration
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall allow configuration of KVS constraints at compile-time using source code constants or at runtime using a configuration file.

Concurrency
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall implement thread-safe mechanisms to enable concurrent access to data without data races.

Multi-Instance
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall manage all runtime variables within an instance to enable creation and use of multiple KVS instances concurrently within a single software architecture element.

Persistent Data Storage Components
status: valid
security: NO
safety: ASIL_B

The component shall use the file API and the JSON data format to persist data.

Persistent Data Storage Checksum Write
status: valid
security: NO
safety: ASIL_B

The component shall generate a checksum for each data file and shall store it alongside the data.

Persistent Data Storage Checksum Verify
status: valid
security: NO
safety: ASIL_B

The component shall verify the checksum when loading data.

Persistent Data Storage Backend
status: valid
security: NO
safety: ASIL_B

The component shall use the file API to persist data.

Persistent Data Storage Format
status: valid
security: NO
safety: ASIL_B

The component shall use the JSON data format to persist data.

Persistent Data Versioning
status: valid
security: NO
safety: ASIL_B

The component shall not provide built-in versioning.

Persistent Data Schema
status: valid
security: NO
safety: ASIL_B

The component shall use a JSON file storage format that enables the application to implement versioning, including upgrade and downgrade paths, as needed.

Snapshot Creation
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall create a snapshot each time data is stored.

Snapshot Maximum Number
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall maintain a configurable maximum number of snapshots.

Snapshot IDs
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall assign the ID 1 to the newest snapshot and shall increment the IDs of older snapshots accordingly.

Snapshot Rotation
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall rotate and delete the oldest snapshot when the maximum number is reached.

Snapshot Restore
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall allow restoration of a snapshot by its ID.

Snapshot Deletion
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall allow deletion of individual snapshots.

Engineering Mode
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall provide an engineering mode that can be enabled during build time to display debugging and internal information.

Field Mode
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall provide a field mode that can be enabled during build time to restrict access as much as possible.

Async API
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall provide an asynchronous API in addition to the standard API.

Permission Control
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall rely on the underlying filesystem for access and permission management and shall not implement its own access or permission controls.

Permission Error Handling
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall report any access or permission errors encountered at the filesystem level to the application.

Callback Support
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

The component shall provide an API for registering callbacks that are triggered by data change events.