{"id":22268089,"url":"https://github.com/curityio/dynamodb-data-access-provider","last_synced_at":"2026-03-01T05:34:48.889Z","repository":{"id":43280043,"uuid":"319927873","full_name":"curityio/dynamodb-data-access-provider","owner":"curityio","description":"A Data Access Provider Plugin for the Curity Identity Server using AWS Dynamo DB as the data source","archived":false,"fork":false,"pushed_at":"2026-02-12T13:25:46.000Z","size":880,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-02-12T22:11:50.932Z","etag":null,"topics":["data-access-provider","data-source","dynamodb","plugin"],"latest_commit_sha":null,"homepage":"https://curity.io/docs/idsvr/latest/system-admin-guide/data-sources/dynamodb.html","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/curityio.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-09T10:57:53.000Z","updated_at":"2025-05-08T12:32:53.000Z","dependencies_parsed_at":"2023-12-19T15:03:01.818Z","dependency_job_id":"b1aaa1c4-ff56-4737-86c6-d8c512b7f91f","html_url":"https://github.com/curityio/dynamodb-data-access-provider","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/curityio/dynamodb-data-access-provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fdynamodb-data-access-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fdynamodb-data-access-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fdynamodb-data-access-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fdynamodb-data-access-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/curityio","download_url":"https://codeload.github.com/curityio/dynamodb-data-access-provider/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fdynamodb-data-access-provider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29960436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-access-provider","data-source","dynamodb","plugin"],"created_at":"2024-12-03T11:11:03.108Z","updated_at":"2026-03-01T05:34:48.863Z","avatar_url":"https://github.com/curityio.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"DynamoDB Data Access Provider Plugin\n====================================\n\n.. image:: https://img.shields.io/badge/quality-production-green\n    :target: https://curity.io/resources/code-examples/status/\n\n.. image:: https://img.shields.io/badge/availability-bundled-green\n    :target: https://curity.io/resources/code-examples/status/\n\nA custom, Kotlin-based data access provider plugin for the Curity Identity Server.\n\nBuilding the Plugin\n~~~~~~~~~~~~~~~~~~~\n\nYou can build the plugin by issuing the command ``mvn package``. This will produce a JAR file in the ``target`` directory,\nwhich can be installed.\n\nBuilding the plugin requires ``JAVA_HOME`` to point to a JDK with version 21 or above.\n\nInstalling the Plugin\n~~~~~~~~~~~~~~~~~~~~~\n\nTo install the plugin, copy the compiled JAR (and all of its dependencies) into the :file:`${IDSVR_HOME}/usr/share/plugins/${pluginGroup}`\non each node, including the admin node. For more information about installing plugins, refer to the `https://curity.io/docs/idsvr/latest/developer-guide/plugins/index.html#plugin-installation`_.\n\nRequired Dependencies\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nFor a list of the dependencies and their versions, run ``mvn dependency:list``. Ensure that all of these are installed in\nthe plugin group; otherwise, they will not be accessible to this plug-in and run-time errors will result.\n\nTables, keys, and indexes\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe folder `src/main/resources/schemas \u003csrc/main/resources/schemas\u003e`_ contains JSON files with the required tables,\nas well as their key and index schemas for the `Provisioned` AWS Billing Mode.\nThe included ``ProvisionedThroughput`` values are illustrative and need to be adapted to the final usage scenario.\n\nThere is also another set of JSON files for the `on-demand` Billing Mode which can be found from the `on-demand` folder\nunder the `schemas`.\n\nMulti-Tenancy\n~~~~~~~~~~~~~\n\nMulti-tenancy is supported out of the box by the DynamoDB data source plugin.\nAny user name, phone number, email, linked account, device ID or bucket can exist in different tenants.\nFor each item (account, linked account, device, bucket) owned by a tenant, a `tenantId` attribute with the tenant ID\nvalue is persisted with the item. This may help filtering all items for a given tenant. Items owned by default tenant\ndo not have a `tenantId` attribute and can be queried using the filter expression: ``attribute_not_exists(tenantId)``.\nDocumentation for each `DynamoDBXXXDataAccessProvider` class details the strategy used to persist data for various tenants\nin tables and global secondary indexes.\n\nPhone number uniqueness requirement\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBy default, the phone number of an account must be unique among all accounts of the accounts table. Though it is not the\nrecommended behavior, from version 8.0, it is possible to lift this restriction by setting the\n``se.curity:identity-server.plugin.dynamodb:unique-account-phone-number`` system property to ``false`` on all nodes.\n\nOnce done, it will be possible to have a given phone number shared by more than one of the accounts created after this\nchange. But note that it will no longer be possible to retrieve accounts using the ``getByPhone`` request, ``null`` will be systematically returned.\n\n.. warning:: However, beware that, once set to ``false``, this system property should no longer be set to ``true`` or removed (as its default value is ``true``)! Indeed, doing so could lead to stale data, for instance:\n\n  * Without the property, when an account \"123\" is created with a phone number, it can be requested by its phone number.\n\n  * Then, the property is set to ``false`` and account \"123\" is updated.\n\n  * If the property is finally reverted to default, then the account can again be requested by its phone number, but it will hold stale attributes.\n\nMore Information\n~~~~~~~~~~~~~~~~\n\nPlease visit `curity.io`_ for more information about the Curity Identity Server.\n\n.. _curity.io/plugins: https://support.curity.io/docs/latest/developer-guide/plugins/index.html#plugin-installation\n.. _curity.io: https://curity.io/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurityio%2Fdynamodb-data-access-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcurityio%2Fdynamodb-data-access-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurityio%2Fdynamodb-data-access-provider/lists"}