Amazon DynamoDB
AWS::DynamoDB::Table
The following example demonstrates how to ingest your AWS DynamoDB tables to Port.
DynamoDB Table supported actions
The table below summarizes the available actions for ingesting Amazon DynamoDB Table resources in Port:
| Action | Description | Type | Required AWS Permission |
|---|---|---|---|
| ListTablesAction | Discover DynamoDB tables in each region. | Default | dynamodb:ListTables |
| GetTableDetailsAction | Retrieve detailed table configuration including status, billing mode, size, item count, encryption, and deletion protection. | Default | dynamodb:DescribeTable |
| GetTableTagsAction | Retrieve tags associated with each table. Required to populate the tags property. | Optional | dynamodb:ListTagsOfResource |
| GetTableBackupStatusAction | Retrieve continuous backup and point-in-time recovery status for each table. | Optional | dynamodb:DescribeContinuousBackups |
Optional Properties Note
Properties of optional actions will not appear in the response unless you explicitly include the action that provides them in your configuration.
You can use the following Port blueprint definitions and integration configuration:
DynamoDB Table blueprint (click to expand)
{
"identifier": "dynamodbTable",
"title": "DynamoDB Table",
"description": "This blueprint represents an AWS DynamoDB table in our software catalog",
"icon": "AmazonDynamoDB",
"schema": {
"properties": {
"tableArn": {
"type": "string",
"title": "Table ARN",
"description": "The Amazon Resource Name (ARN) of the DynamoDB table"
},
"tableStatus": {
"type": "string",
"title": "Status",
"description": "The current status of the table"
},
"billingMode": {
"type": "string",
"title": "Billing mode",
"description": "The billing mode of the table (PROVISIONED or PAY_PER_REQUEST)"
},
"itemCount": {
"type": "number",
"title": "Item count",
"description": "The number of items in the table"
},
"tableSizeBytes": {
"type": "number",
"title": "Table size (bytes)",
"description": "The total size of the table in bytes"
},
"creationDateTime": {
"type": "string",
"title": "Creation date",
"description": "The date and time when the table was created",
"format": "date-time"
},
"deletionProtectionEnabled": {
"type": "boolean",
"title": "Deletion protection",
"description": "Whether deletion protection is enabled for the table"
},
"encryptionType": {
"type": "string",
"title": "Encryption type",
"description": "The type of server-side encryption (AES256 or KMS)"
},
"region": {
"type": "string",
"title": "Region",
"description": "The AWS region where the table resides"
},
"tags": {
"type": "array",
"title": "Tags",
"description": "Tags associated with the table",
"items": {
"type": "object"
}
}
},
"required": []
},
"mirrorProperties": {},
"calculationProperties": {},
"aggregationProperties": {},
"relations": {
"account": {
"title": "Account",
"target": "awsAccount",
"required": true,
"many": false
}
}
}
DynamoDB Table mapping configuration (click to expand)
resources:
- kind: AWS::DynamoDB::Table
selector:
query: 'true'
includeActions:
- GetTableTagsAction
port:
entity:
mappings:
identifier: .Properties.TableArn
title: .Properties.TableName
blueprint: '"dynamodbTable"'
properties:
tableArn: .Properties.TableArn
tableStatus: .Properties.TableStatus
billingMode: .Properties.BillingModeSummary.BillingMode
itemCount: .Properties.ItemCount
tableSizeBytes: .Properties.TableSizeBytes
creationDateTime: .Properties.CreationDateTime
deletionProtectionEnabled: .Properties.DeletionProtectionEnabled
encryptionType: .Properties.SSEDescription.SSEType
region: .__ExtraContext.Region
tags: .Properties.Tags
relations:
account: .__ExtraContext.AccountId
For more details about DynamoDB table properties, refer to the AWS DynamoDB API documentation.