Skip to main content

AWS Resources Inventory

This page provides a comprehensive inventory of all AWS resources deployed by VAMS. Resources are organized by service. Some resources are conditionally deployed based on the deployment configuration.

Amazon DynamoDB Tables

VAMS deploys 28 Amazon DynamoDB tables for persistent data storage. All tables use on-demand (PAY_PER_REQUEST) billing, point-in-time recovery, and optional AWS KMS customer-managed key encryption.

Core Data Tables

TablePartition Key (PK)Sort Key (SK)StreamsGSIsPurpose
AssetStorageTabledatabaseIdassetIdNEW_IMAGEBucketIdGSI (PK: bucketId, SK: assetId), assetIdGSI (PK: assetId, SK: databaseId)Asset records
DatabaseStorageTabledatabaseId--NEW_IMAGE--Database (collection) records
PipelineStorageTabledatabaseIdpipelineId----Pipeline definitions
WorkflowStorageTabledatabaseIdworkflowId----Workflow definitions
WorkflowExecutionsStorageTabledatabaseId:assetIdexecutionId--WorkflowLSI (LSI, SK: workflowDatabaseId:workflowId), WorkflowGSI (PK: workflowDatabaseId:workflowId, SK: executionId), ExecutionIdGSI (PK: workflowId, SK: executionId)Workflow execution records
CommentStorageTableassetIdassetVersionId:commentId----Asset comments

Asset Version Tables

TablePartition Key (PK)Sort Key (SK)GSIsPurpose
AssetVersionsStorageTable (V2)databaseId:assetIdassetVersionId--Asset version records
AssetFileVersionsStorageTable (V2)databaseId:assetId:assetVersionIdfileKeydatabaseIdAssetIdIndex (PK: databaseId:assetId)File version records per asset version
AssetFileMetadataVersionsStorageTabledatabaseId:assetId:assetVersionIdtype:filePath:metadataKeydatabaseIdAssetIdIndex (PK: databaseId:assetId)Metadata snapshot per asset version
AssetUploadsStorageTableuploadIdassetIdAssetIdGSI (PK: assetId), DatabaseIdGSI (PK: databaseId), UserIdGSI (PK: UserId, SK: createdAt)In-progress upload tracking

Metadata and Attribute Tables

TablePartition Key (PK)Sort Key (SK)StreamsGSIsPurpose
DatabaseMetadataStorageTable (V2)metadataKeydatabaseIdNEW_IMAGEDatabaseIdIndex (PK: databaseId, SK: metadataKey)Database-level metadata
AssetFileMetadataStorageTable (V2)metadataKeydatabaseId:assetId:filePathNEW_IMAGEDatabaseIdAssetIdFilePathIndex (PK: databaseId:assetId:filePath, SK: metadataKey), DatabaseIdAssetIdIndex (PK: databaseId:assetId, SK: metadataKey)File-level metadata
FileAttributeStorageTable (V2)attributeKeydatabaseId:assetId:filePathNEW_IMAGEDatabaseIdAssetIdFilePathIndex (PK: databaseId:assetId:filePath, SK: attributeKey), DatabaseIdAssetIdIndex (PK: databaseId:assetId, SK: attributeKey)File attributes (system-generated)
MetadataSchemaStorageTable (V2)metadataSchemaIddatabaseId:metadataEntityType--DatabaseIdMetadataEntityTypeIndex, MetadataEntityTypeIndex, DatabaseIdIndexMetadata schema definitions
TablePartition Key (PK)Sort Key (SK)StreamsGSIsPurpose
AssetLinksStorageTable (V2)assetLinkId--NEW_IMAGEfromAssetGSI (PK: fromAssetDatabaseId:fromAssetId, SK: toAssetDatabaseId:toAssetId), toAssetGSI (PK: toAssetDatabaseId:toAssetId, SK: fromAssetDatabaseId:fromAssetId)Asset relationships (parent/child/related)
AssetLinksMetadataStorageTableassetLinkIdmetadataKeyNEW_IMAGE--Metadata attached to asset links

Authorization Tables

TablePartition Key (PK)Sort Key (SK)GSIsPurpose
AuthEntitiesStorageTableentityTypesk--Auth entity records
ConstraintsStorageTableconstraintId--GroupPermissionsIndex (PK: groupId, SK: objectType), UserPermissionsIndex (PK: userId, SK: objectType), ObjectTypeIndex (PK: objectType, SK: constraintId)Permission constraints (Casbin policies)
RolesStorageTableroleName----Role definitions
UserRolesStorageTableuserIdroleName--User-role assignments
UserStorageTableuserId----User profile records
ApiKeyStorageTableapiKeyId--apiKeyHashIndex (PK: apiKeyHash), userIdIndex (PK: userId, SK: apiKeyId)API key records

Classification and Configuration Tables

TablePartition Key (PK)Sort Key (SK)Purpose
TagStorageTabletagName--Tag definitions
TagTypeStorageTabletagTypeName--Tag type (category) definitions
SubscriptionsStorageTableeventNameentityName_entityIdEvent notification subscriptions
AppFeatureEnabledStorageTablefeatureName--Enabled feature flags
S3AssetBucketsStorageTablebucketIdbucketName:baseAssetsPrefixRegistered asset bucket records (GSI: bucketNameGSI)

Amazon S3 Buckets

BucketVersionedCORSAccess LoggingPurpose
Asset Bucket(s)YesYesYes (to Access Logs)Primary asset file storage. One auto-created bucket plus optional external buckets.
Asset Auxiliary BucketYesYesYes (to Access Logs)Auto-generated previews, visualizer files, pipeline temporary storage.
Artefacts BucketYesNoYes (to Access Logs)Template notebooks and deployment artefacts.
Access Logs BucketYesNoNo (self-referencing prevented)Server access logs for all other buckets. 90-day lifecycle expiration.
Web App BucketYesNoNoBuilt frontend static assets (CloudFront/ALB origin).
Asset Bucket Configuration

VAMS supports multiple asset buckets. The createNewBucket configuration option creates a VAMS-managed bucket. The externalAssetBuckets configuration option registers pre-existing buckets by ARN. Each external bucket requires a defaultSyncDatabaseId and optional baseAssetsPrefix.

AWS Lambda Functions

VAMS deploys approximately 50 Lambda functions across 17 builder files. All functions use Python 3.12 runtime, 5308 MB memory, and 15-minute timeout.

API Handler Functions

Builder FileFunctionsDomain
assetFunctions.tscreateAsset, uploadFile, streamAuxiliaryPreviewAsset, downloadAsset, assetVersions, streamAsset, sqsUploadFileLarge, ingestAssetAsset CRUD, file upload/download
assetsLinkFunctions.tscreateAssetLink, assetLinksMetadataAsset relationship management
authFunctions.tsauthConstraints, authConstraintsTemplate, apiKeyService, apiGatewayAuthorizerHttp, apiGatewayAuthorizerWebsocketAuthentication and authorization
commentFunctions.tsaddComment, editCommentAsset comments
configFunctions.tsconfigServiceSystem configuration
databaseFunctions.tscreateDatabaseDatabase CRUD
metadataFunctions.tsmetadataServiceMetadata CRUD
metadataSchemaFunctions.tsmetadataSchemaServiceMetadata schema management
pipelineFunctions.tscreatePipeline, enablePipelinePipeline management
roleFunctions.tscreateRoleRole CRUD
sendEmailFunctions.tssendEmailEmail notifications
subscriptionFunctions.tssubscriptionService, checkSubscription, unSubscribeEvent subscriptions
tagFunctions.tscreateTagTag CRUD
tagTypeFunctions.tscreateTagTypeTag type CRUD
userRoleFunctions.tsuserRolesServiceUser-role assignment
workflowFunctions.tslistWorkflowExecutions, createWorkflow, executeWorkflow, sqsAutoExecuteWorkflow, processWorkflowExecutionOutput, importGlobalPipelineWorkflowWorkflow management and execution

Search and Indexing Functions

Builder FileFunctionsPurpose
searchIndexBucketSyncFunctions.tssearchFunction, fileIndexing, assetIndexing, sqsBucketSync (created/deleted per bucket), reindexer, fileIndexerSnsQueuing, assetIndexerSnsQueuing, databaseIndexerSnsQueuingOpenSearch indexing and S3 bucket synchronization

Infrastructure Functions

FunctionPurpose
Amplify Config LambdaServes /api/amplify-config (unauthenticated)
VAMS Version LambdaServes /api/version (unauthenticated)
Schema Deploy Lambda (Node.js 20.x)Custom resource for OpenSearch index creation
Populate S3 Asset Buckets LambdaCustom resource for bucket table population

Amazon API Gateway

ResourceConfiguration
API TypeHTTP API (API Gateway V2)
AuthorizerCustom Lambda authorizer (SIMPLE response, 30s cache TTL)
Identity Source$request.header.Authorization
CORSAll origins (*), all standard HTTP methods, credentials disabled
Rate LimitingDefault 50 requests/second rate, 100 burst (configurable)
Access LoggingCloudWatch Logs with structured JSON format
Unauthenticated Paths/api/amplify-config, /api/version

AWS Step Functions

VAMS creates Step Functions state machines dynamically for each workflow definition. State machines orchestrate pipeline execution steps and handle output processing between steps.

Amazon OpenSearch Service

ConfigurationServerlessProvisioned
DeploymentOpenSearch Serverless collectionOpenSearch Service domain (v2.7)
IndexesAsset index + File index (dual-index architecture)Asset index + File index
AccessIAM-based access policiesVPC-based access (3 AZ)
ConfigurationopenSearch.useServerless.enabledopenSearch.useProvisioned.enabled
No OpenSearch Mode

Both OpenSearch modes can be disabled. When neither is enabled, the NOOPENSEARCH feature flag is set and search functionality is unavailable in the UI.

Amazon Cognito

Deployed when authProvider.useCognito.enabled = true:

ResourcePurpose
User PoolUser identity management with password policies
User Pool ClientWeb application client for authentication
Identity PoolFederated identity for temporary AWS credentials
SAML ProviderOptional SAML federation (when useSaml = true)

Amazon SNS Topics

TopicPurpose
EventEmailSubscriptionTopicEmail notification subscriptions for asset events
FileIndexerSnsTopicRoutes DynamoDB Stream events to file indexer
AssetIndexerSnsTopicRoutes DynamoDB Stream events to asset indexer
DatabaseIndexerSnsTopicRoutes DynamoDB Stream events to database indexer
S3ObjectCreatedTopic (per bucket)Amazon S3 object creation events per asset bucket
S3ObjectRemovedTopic (per bucket)Amazon S3 object deletion events per asset bucket

All Amazon SNS topics enforce SSL and use optional AWS KMS encryption.

Amazon SQS Queues

QueuePurpose
WorkflowAutoExecuteQueueTriggers automatic workflow execution on file upload
BucketSyncCreated (per bucket)Processes S3 ObjectCreated events for bucket synchronization
BucketSyncDeleted (per bucket)Processes S3 ObjectRemoved events for bucket synchronization
File/Asset/Database Indexer QueuesBuffer indexing events between Amazon SNS and indexer Lambdas

All Amazon SQS queues enforce SSL and use optional AWS KMS encryption.

Amazon CloudWatch

Audit Log Groups (10-Year Retention)

Log GroupEvents Captured
VAMSAuditAuthenticationLogin attempts, token validation
VAMSAuditAuthorizationAuthorization decisions (allow/deny)
VAMSAuditFileUploadFile upload operations
VAMSAuditFileDownloadFile download operations
VAMSAuditFileDownloadStreamedStreamed file downloads
VAMSAuditAuthOtherOther authentication events
VAMSAuditAuthChangesRole/constraint modifications
VAMSAuditActionsGeneral CRUD actions
VAMSAuditErrorsApplication errors

Infrastructure Log Groups (1-Year Retention)

Log GroupPurpose
VAMS-API-AccessLogsAPI Gateway access logs (structured JSON)
VAMSCloudWatchVPCLogsVPC flow logs (when VPC enabled)
VAMSCloudTrailLogsAWS CloudTrail logs (when enabled)
Log Retention

A CDK aspect (LogRetentionAspect) forces one-year retention on all CloudWatch Log Groups in the stack. Audit log groups are explicitly set to 10-year retention.

AWS KMS

Deployed when useKmsCmkEncryption.enabled = true:

ResourcePurpose
VAMS Encryption KMS KeyCustomer-managed key for all VAMS data encryption

The KMS key policy grants access to the following service principals: Amazon S3, Amazon DynamoDB, Amazon SQS, Amazon SNS, Amazon ECS, Amazon EKS, Amazon ECS Tasks, Amazon CloudWatch Logs, AWS Lambda, AWS STS, and AWS CloudFormation. Conditionally, Amazon CloudFront, Amazon OpenSearch Service, and Amazon OpenSearch Serverless principals are also added.

An external CMK can be imported via useKmsCmkEncryption.optionalExternalCmkArn.

Amazon VPC Resources

Deployed when useGlobalVpc.enabled = true:

ResourceConfiguration
VPCVAMS-managed or imported external VPC
Isolated SubnetsLambda functions, VPC endpoints (CIDR mask /23)
Private SubnetsPipeline compute with egress (CIDR mask /26, conditional)
Public SubnetsALB, pipeline compute (CIDR mask /26, conditional)
VPC Endpoint Security GroupAllows HTTPS (443) and DNS (53 TCP/UDP) from VPC CIDR
VPC Flow LogsSent to Amazon CloudWatch Logs

See the Network Architecture page for full VPC endpoint details.

AWS WAF

Deployed when useWaf = true:

ResourcePurpose
WAFv2 Web ACLWeb application firewall for Amazon CloudFront or Application Load Balancer

For Amazon CloudFront deployments, the WAF stack is deployed in us-east-1. For Application Load Balancer deployments, the WAF is regional.

AWS Batch

Deployed conditionally for each enabled pipeline:

ResourceConfiguration
Compute EnvironmentFargate or Fargate with GPU (per pipeline)
Job QueuePer-pipeline job queue
Job DefinitionContainer definitions with pipeline-specific configuration
Security GroupsPipeline-specific security groups within VPC

AWS CloudTrail

Deployed when addStackCloudTrailLogs = true:

ResourceConfiguration
TrailSingle-region trail logging Lambda data events and S3 data events
S3 DestinationAccess Logs bucket with cloudtrail-logs/ prefix
CloudWatchLogs sent to VAMSCloudTrailLogs log group

Web Hosting

Amazon CloudFront (Commercial)

ResourcePurpose
DistributionGlobal CDN for web application and API proxy
S3 OriginWeb app bucket as origin
API OriginAPI Gateway endpoint as origin

Application Load Balancer (GovCloud / ALB Mode)

ResourcePurpose
ALBRegional load balancer for web application
Target GroupAmazon S3 web bucket as target
HTTPS ListenerTLS termination with ACM certificate

Next Steps