Service - Table Config

From Izara Wiki
Jump to navigation Jump to search

Overview

Manages configuration for presentation tables created by users and used in different areas of the project.

Repository

https://bitbucket.org/izara-core-shared/izara-core-shared-table-config

DynamoDB tables

ObjectSchema

TableConfig

[
  {
    objectType: "tableConfig",
    storageResources: {
      "dynamodb": {
        storageType: "dynamoDB", 
        tableName: "TableConfigMain",
      }
    },
    fieldNames: {
      tableConfigId: {
        type: "string",
        randomOnCreate: true,
        requiredOnCreate: false,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
      tableConfig: {
        type: "object", 
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      tableConfigName: {
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      userId: {
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
    },
    identifiers: [
      {
        type: "partitionKey",
        fieldNames: "tableConfigId"
      },
    ],
  },
]

TableConfigMain

{
	tableConfigId: "xx", // {random uuid}
	tableConfig: "xx", // json encoded object of configuration
	tableConfigName: "yy", // user specified name of the config
	userId: "xx"
}
  • partition key: tableConfigId
  • sort key: {none}

UsersTableConfigs

{
	userId: "xx" // user who owns the tableConfig
	tableConfigId: "xx",
}
  • partition key: userId
  • sort key: tableConfigId

Working documents

Table Config