* [dynamodb] Update to SDKv2 Enhanced Client
In addition, introduce new more simple table layout, having only one
table for all items and with more efficient data encoding (saves some read capacity).
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Time To Live (TTL) support with new table schema
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Support QuantityType
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] suppress null warnings in tests
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Optimized query performance
Similar to https://github.com/openhab/openhab-addons/pull/8938,
avoid calling Item.getUnit() repeatedly when querying data.
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Support for Group items
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Update copyright to 2021
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Removing TODO comments and add javadoc
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] javadoc
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Readability improved in TableCreatingPutItem
Also documenting the full retry logic.
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] verify fixes
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Remove slf4j from explicit dependencies
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Remove jackson from pom.xml, add as feature dep
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] bnd.importpackage tuned
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] abort query() immediately if not configured to avoid NPE
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] less chatty diagnostics
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] xml formatting
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] corrected logger class
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] null checks
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] netty client configured
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] bnd not to filter out importpackage org.slf4j.impl
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] cfg bundle group id
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Remove usage of org.apache.commons
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Remove extra prints from test
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Reducing @SupressWarnings with generics
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] README extra space removed
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] spotless
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Removed unnecessary logging
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] encapsulation
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] removed unnecessary NonNullByDefault({}) ctr-injected field
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] null annotations
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] less verbose logging in tests
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Prefer Collections.emptyList over List.of()
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] less verbose call
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Visitor to return values (simplifies the code)
Less warnings suppressed
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] comments for remaining warning supressions
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] README tuning, typo fixing
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Using less verbose syntax
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] simplified logging on errors
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Code review comments
Avoiding null checker while having more compact code
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] Null safety
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] configuration label and description formatting
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] xml indentation with tabs
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] @Nullable 1-line annotation with class fields
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] No need to override credentials per request
Client has the credentials set on build time
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] set API timeouts no matter what
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] adding exception message
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] static logger
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] dependency
- comments clarifying the logic of properties
- adding netty to dep.noembedding to ensure it is not compiled in
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] ensure correct jackson and netty versions using dependencyMgt
Specifically for development and testing
See 051c764789
for further discussion why this is needed.
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] avoid google collections
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] jackson-dataformat-cbor not jackson-cbor
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] also restrict netty-transport-native-epoll linux-x86_64 version
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] refering dynamodb.cfg similar to other bundles
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] bnd.importpackage to excl. reactivestreams and typesafe.netty
These are compiled-in dependencies, and thus we do not want to have them in
OSGi Import-Package.
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* Update bundles/org.openhab.persistence.dynamodb/src/main/resources/OH-INF/config/config.xml
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* Update bundles/org.openhab.persistence.dynamodb/src/main/resources/OH-INF/config/config.xml
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
* [dynamodb] remove netty-codec-http2 as it is included in tp-netty
See https://github.com/openhab/openhab-core/pull/2257/
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] removed duplicate in bnd.importpackage
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
* [dynamodb] slf4j-api marked as provided to remove dep errors in runtime
Signed-off-by: Sami Salonen <ssalonen@gmail.com>
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
150 lines
5.4 KiB
XML
150 lines
5.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<config-description:config-descriptions
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
|
|
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0
|
|
https://openhab.org/schemas/config-description-1.0.0.xsd">
|
|
|
|
<config-description uri="persistence:dynamodb">
|
|
|
|
<!--
|
|
############################ Amazon DynamoDB Persistence Service ##################################
|
|
#
|
|
# The following parameters are used to configure Amazon DynamoDB Persistence.
|
|
#
|
|
# Further details at https://www.openhab.org/addons/persistence/dynamodb/
|
|
#
|
|
|
|
# PID SETTING
|
|
#
|
|
# When configuring the persistence using file (instead UI),
|
|
# make sure the first line in the configuration file is the
|
|
# pid definition (remove the comment prefix #)
|
|
|
|
#pid:pid:org.openhab.dynamodb
|
|
|
|
#
|
|
# CONNECTION SETTINGS (follow OPTION 1 or OPTION 2)
|
|
#
|
|
|
|
# OPTION 1 (using accessKey and secretKey)
|
|
#accessKey=AKIAIOSFODNN7EXAMPLE
|
|
#secretKey=3+AAAAABBBbbbCCCCCCdddddd+7mnbIOLH
|
|
#region=eu-west-1
|
|
|
|
# OPTION 2 (using profilesConfigFile and profile)
|
|
# where profilesConfigFile points to AWS credentials file
|
|
# Please note that the user that runs openHAB must have approriate read rights to the credential file.
|
|
# See below for an example how the credentials file should look like
|
|
#profilesConfigFile=/etc/openhab2/aws_creds
|
|
#profile=fooprofile
|
|
#region=eu-west-1
|
|
|
|
# UNCOMMENT THE BELOW ALWAYS (otherwise legacy table schema with 'tablePrefix' is used)
|
|
#table=openhab
|
|
|
|
# Credentials file example:
|
|
#
|
|
# [fooprofile]
|
|
# aws_access_key_id=AKIAIOSFODNN7EXAMPLE
|
|
# aws_secret_access_key=3+AAAAABBBbbbCCCCCCdddddd+7mnbIOLH
|
|
|
|
#
|
|
# ADVANCED CONFIGURATION (OPTIONAL)
|
|
#
|
|
|
|
# Expire time for data in days (relative to stored timestamp).
|
|
# Data older than this is removed automatically using DynamoDB Time to Live (TTL)
|
|
# feature.
|
|
#expireDays=
|
|
|
|
# read capacity for the created tables
|
|
#readCapacityUnits=1
|
|
|
|
# write capacity for the created tables
|
|
#writeCapacityUnits=1
|
|
|
|
# LEGACY SCHEMA: table prefix used in the name of created tables
|
|
#tablePrefix=openhab-
|
|
|
|
-->
|
|
|
|
<parameter name="region" type="text" required="true">
|
|
<label>AWS region ID</label>
|
|
<description><![CDATA[AWS region ID<br />
|
|
The region needs to match the region of the AWS user that will access Amazon DynamoDB.<br />
|
|
For example, eu-west-1.]]></description>
|
|
</parameter>
|
|
|
|
<parameter name="accessKey" type="text" required="false">
|
|
<label>AWS access key</label>
|
|
<description><![CDATA[AWS access key<br />
|
|
Give either 1) access key and secret key, or 2) credentials file and profile name.
|
|
]]></description>
|
|
</parameter>
|
|
|
|
<parameter name="secretKey" type="text" required="false">
|
|
<label>AWS secret key</label>
|
|
<description><![CDATA[AWS secret key<br />
|
|
Give either 1) access key and secret key, or 2) credentials file and profile name.
|
|
]]></description>
|
|
</parameter>
|
|
|
|
|
|
<parameter name="profilesConfigFile" type="text" required="false">
|
|
<label>AWS credentials file</label>
|
|
<description><![CDATA[Path to the AWS credentials file. <br />
|
|
For example, /etc/openhab/aws_creds. Please note that the user that runs openHAB must have approriate read rights to the credential file. <br />
|
|
Give either 1) access key and secret key, or 2) credentials file and profile name.
|
|
]]></description>
|
|
</parameter>
|
|
|
|
<parameter name="profile" type="text" required="false">
|
|
<label>Profile name</label>
|
|
<description><![CDATA[Profile name in AWS credentials file. <br />
|
|
Give either 1) access key and secret key, or 2) credentials file and profile name.
|
|
]]></description>
|
|
</parameter>
|
|
|
|
<parameter name="table" type="text" required="false">
|
|
<label>Table</label>
|
|
<description><![CDATA[Table name. <br />
|
|
Specify this parameter over Table Prefix to use the new optimized table format.]]></description>
|
|
<default>openhab</default> <!-- set by default, preferring new schema format -->
|
|
</parameter>
|
|
|
|
<parameter name="readCapacityUnits" type="integer" required="false" min="1">
|
|
<description><![CDATA[Provisioned read capacity.<br />
|
|
Default is 1.]]></description>
|
|
<label>Read Capacity</label>
|
|
<advanced>true</advanced>
|
|
</parameter>
|
|
|
|
<parameter name="writeCapacityUnits" type="integer" required="false" min="1">
|
|
<label>Write Capacity</label>
|
|
<description><![CDATA[Provisioned write capacity.<br />
|
|
Default is 1.]]></description>
|
|
<advanced>true</advanced>
|
|
</parameter>
|
|
|
|
<parameter name="expireDays" type="integer" required="false" min="1">
|
|
<label>Data Expiry, in Days</label>
|
|
<description><![CDATA[Expire time for data.<br />
|
|
Data older than this is automatically removed by DynamoDB Time to Live (TTL) feature. Use empty value to disable data expiration.
|
|
]]></description>
|
|
<advanced>true</advanced>
|
|
<default></default> <!-- empty by default, giving preference to new table schema -->
|
|
</parameter>
|
|
|
|
<parameter name="tablePrefix" type="text" required="false">
|
|
<label>Table Prefix</label>
|
|
<description><![CDATA[Legacy: Table prefix used in the name of created tables. <br />
|
|
Default is "openhab-"]]></description>
|
|
<advanced>true</advanced>
|
|
<default></default> <!-- empty by default, giving preference to new table schema -->
|
|
</parameter>
|
|
|
|
</config-description>
|
|
|
|
</config-description:config-descriptions>
|