cdk-power-constructs
v0.1.17
Published
Reusable AWS CDK constructs for common infrastructure patterns
Downloads
383
Maintainers
Readme
CDK Power Constructs
Features
- 🏗️ Infrastructure Patterns - Common infrastructure challenges solved
- 📊 Data Solutions - Refined patterns for data pipelines and analytics
- 🤖 AI/ML Ready - Purpose-built constructs for ML workflows
- 🎯 Opinionated Design - Battle-tested decisions baked in
- 🔒 Security First - AWS Well-Architected Framework principles
- 🌍 Multi-language - TypeScript, Python, Java, .NET, Go
Installation
TypeScript/JavaScript
npm install cdk-power-constructsPython
pip install cdk-power-constructsJava
<dependency>
<groupId>fr.guyon-it-consulting</groupId>
<artifactId>cdk-power-constructs</artifactId>
<version>0.1.0</version>
</dependency>.NET
dotnet add package GuyonItConsulting.CdkPowerConstructsGo
go get github.com/guyon-it-consulting/cdk-power-constructs-goQuick Start
TypeScript
import { GlueResourcePolicyStatement } from 'cdk-power-constructs/glue/glue-resource-policy';
import * as iam from 'aws-cdk-lib/aws-iam';
new GlueResourcePolicyStatement(stack, 'CrossAccountAccess', {
sid: 'AllowCrossAccountAccess',
statement: new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
principals: [new iam.AccountPrincipal('123456789012')],
actions: ['glue:GetDatabase', 'glue:GetTable'],
resources: ['*'],
}),
});Python
from cdk_power_constructs.glue.glue_resource_policy import GlueResourcePolicyStatement
from aws_cdk import aws_iam as iam
GlueResourcePolicyStatement(stack, "CrossAccountAccess",
sid="AllowCrossAccountAccess",
statement=iam.PolicyStatement(
effect=iam.Effect.ALLOW,
principals=[iam.AccountPrincipal("123456789012")],
actions=["glue:GetDatabase", "glue:GetTable"],
resources=["*"]
)
)Available Constructs
GlueResourcePolicyStatement
Manages individual statements in the AWS Glue Data Catalog resource policy for cross-account access and Lake Formation integration.
Documentation
Development
# Install dependencies
npm install
# Build the library
npm run build
# Run tests
npm test
# Package for all languages
npm run package
# Generate documentation
npm run docs
# Run documentation site locally
cd website && npm startContributing
Contributions are welcome! Please see our documentation for details.
License
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
Author
Jérôme GUYON
Guyon IT Consulting
