Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
414 commits
Select commit Hold shift + click to select a range
143a367
fix: wp-post add banner
mmuller88 Aug 12, 2021
5bc2801
Merge pull request #76 from mmuller88/wp-video
mbonig Aug 12, 2021
30f7153
Added new post CDK Parallel Deployments
Aug 12, 2021
2e1c7b7
Added an avatar for rehan-v-d-merwe
Aug 12, 2021
f95426e
Updated link of post 4-methods-to-configure-multiple-environments-in-…
Aug 12, 2021
de7245a
Merge pull request #77 from rehanvdm/master
mbonig Aug 12, 2021
4983f2e
Updated domain name + added additional CDK blog posts.
dannysteenman Oct 18, 2021
8e1b2ff
Updating cdk.dev Slack invite
mbonig Nov 1, 2021
4688473
updating slack invite
mbonig Nov 1, 2021
175fda1
Merge pull request #86 from cdk-dev/slack-invite-2
mbonig Nov 1, 2021
e121512
Merge pull request #85 from cdk-dev/slack-invite
mbonig Nov 1, 2021
ce1d5c2
adding coc
mbonig Nov 9, 2021
a44e1c7
Merge pull request #87 from cdk-dev/feat/coc
EdwinRad Nov 9, 2021
c4f6ac7
add my eventbridge post
mmuller88 Nov 14, 2021
ac5e577
add my bitbucket pipeline post
mmuller88 Nov 14, 2021
b7928a5
Merge pull request #88 from mmuller88/cdk-eventbridge
mbonig Nov 14, 2021
23af2b0
Merge pull request #89 from mmuller88/cdk-bitbucket-pipeline
mbonig Nov 14, 2021
e126a13
chore: adds my 2nd projen article in the series retro-actively
pgollucci Mar 27, 2022
11eae21
chore: adds my 3rd projen article in the series - Projen: External Pr…
pgollucci Mar 27, 2022
420f7f2
Fix typo for Awesome cdk8s description (#83)
kevinrambaud Mar 27, 2022
8f2ac72
added Jan posts and added The CDK book (#90)
EdwinRad Mar 27, 2022
42da709
Updated domain name + added additional CDK blog posts. (#82)
dannysteenman Mar 27, 2022
c29c340
Add project structure blog post (#78)
alexpulver Mar 27, 2022
3266237
Adding an example on deploying Next.js with CDK and SST (#81)
jayair Mar 27, 2022
5d8aaad
Content Suggestion: Issue #79 (#80)
rehanhaider Mar 27, 2022
070643c
chore: adds projen doc site
pgollucci Mar 28, 2022
94d0eda
Merge pull request #91 from cdk-dev/chore/adds_my_2nd_projen_article_…
mbonig Mar 28, 2022
c32f5b2
Merge pull request #93 from cdk-dev/chore/adds_projen_doc_site#p6df-K…
mbonig Mar 28, 2022
c84785a
Merge pull request #92 from cdk-dev/chore/adds_my_3rd_projen_article_…
mbonig Mar 28, 2022
60ecf63
chore: adds projen doc site
pgollucci Mar 30, 2022
b6a0e8d
Merge pull request #94 from cdk-dev/chore/adds_projen_doc_site#p6df-G…
mbonig Mar 31, 2022
6820acc
Create index.yml
rileydakota Apr 12, 2022
97ba328
add image
rileydakota Apr 12, 2022
c45e7cf
Create index.yml
rileydakota Apr 12, 2022
d86be3c
Update index.yml
rileydakota Apr 12, 2022
60e7337
Merge branch 'cdk-dev:master' into master
dannysteenman Apr 12, 2022
9871398
feat: add new blogposts from towardsthecloud.com
dannysteenman Apr 12, 2022
1ea5db9
Merge pull request #96 from rileydakota/master
mbonig Apr 28, 2022
1eb2cc1
Merge pull request #97 from dannysteenman/master
mbonig Apr 28, 2022
81375ed
Add Blog Post - How to use Hugging Face SageMaker Serverless Inferenc…
wongcyrus May 8, 2022
75f115b
Add Blog Post - AWS CDK Hack for AWS Academy Learner Lab
wongcyrus May 8, 2022
7c80d00
Merge pull request #98 from wongcyrus/master
mbonig May 9, 2022
d876532
feat: add webrtc saas how to part 1
kristianpaul May 11, 2022
17470bb
fix: remove banner
kristianpaul May 11, 2022
f75215e
Merge pull request #100 from kristianpaul/kristianpaul-saas-1
mbonig May 12, 2022
596254f
Adding part about DMs
mbonig May 16, 2022
7d3b1f1
feat: add post - Improve the Developer Experience (DX) by Publishing …
rehanvdm May 17, 2022
3563f1f
Add Globalize Your Amazon Rekognition Custom Labels with AWS CDK post
wongcyrus May 18, 2022
15bbaad
Added resource CDK Snippets for Python (#104)
sameeramin May 18, 2022
2b3c982
updating slack link on hero
mbonig May 19, 2022
d17d829
new slack link on footer
mbonig May 19, 2022
fca2735
Merge pull request #106 from cdk-dev/new-slack-link
mbonig May 19, 2022
ea0933a
How to build an automatic grading solution for handwriting assessment…
wongcyrus May 23, 2022
0ee8571
Merge pull request #102 from rehanvdm/master
mbonig May 29, 2022
bcd33d2
updating link
mbonig May 29, 2022
d466aa9
updating invite
mbonig May 29, 2022
91bb83f
Merge pull request #107 from cdk-dev/invite
mbonig May 29, 2022
21484bd
Update index.yml
wongcyrus May 31, 2022
4722e93
Merge pull request #103 from wongcyrus/master
mbonig May 31, 2022
152f777
Merge pull request #105 from sameeramin/master
mbonig May 31, 2022
c7ddce2
Add new blog post using CDK Pipelines to deploy a Flutter Web App to …
Jun 2, 2022
24e9f09
Add author information for new post
Jun 2, 2022
2c33a93
Correct path to avatar
Jun 2, 2022
62d2905
Merge pull request #108 from Lock128/feature/add-blog-post-flutter-we…
mbonig Jun 2, 2022
f73d46c
Merge pull request #101 from cdk-dev/feat/coc-dms
mbonig Jun 3, 2022
6752c82
Update copyright
Jun 13, 2022
f65637c
Merge pull request #109 from Lock128/feature/update-copyright
mbonig Jun 13, 2022
25cb7e6
Update Slack link
hoegertn Jun 13, 2022
2ad823f
fix second link
hoegertn Jun 13, 2022
ceb6ef6
Merge pull request #110 from hoegertn/patch-1
mbonig Jun 13, 2022
912c24d
Add post my-experience-on-iac-with-aws-cdk-plus-tips-and-tricks and a…
Ducharme Jun 14, 2022
21d5d3d
Merge pull request #111 from Ducharme/master
mbonig Jun 15, 2022
02780ca
Merge pull request #1 from cdk-dev/master
Lock128 Jun 19, 2022
40962c8
Add new Blog Post that extends the Flutter example to iOS + Android p…
Jun 19, 2022
0da78a8
Update publishing date for blogpost
Jun 19, 2022
1002049
Merge pull request #112 from Lock128/feature/add-blog-post-flutter-an…
mbonig Jun 20, 2022
ae97286
Adding post for Creating Lambda Layers with CDK and TypeScript
Torsitano Jun 21, 2022
1b1fcb4
Remove doc separator
Torsitano Jun 21, 2022
6157cca
Adding quotes
Torsitano Jun 21, 2022
0e03401
Adding author folder for Shawn Torsitano
Torsitano Jun 21, 2022
a84c58f
Merge pull request #113 from Torsitano/master
mbonig Jun 21, 2022
aaae396
updating Slack join link
mbonig Jun 24, 2022
b1f47ca
updating slack join link
mbonig Jun 24, 2022
929465a
Merge pull request #114 from cdk-dev/slack-link
mbonig Jun 24, 2022
da15929
Updating slack invite
mbonig Jul 13, 2022
651adec
Updating slack invite
mbonig Jul 13, 2022
f443e74
Merge pull request #117 from cdk-dev/Slack-invite
mbonig Jul 13, 2022
74c476d
updating slack invite link
mbonig Jul 25, 2022
fb213e4
updating slack invite link
mbonig Jul 25, 2022
9ddf653
Merge pull request #118 from cdk-dev/slack-invite
mbonig Jul 25, 2022
94a9751
Add blog post about cross-account deployments
pgarbe Aug 3, 2022
f0cc93e
Merge pull request #119 from pgarbe/master
mbonig Aug 3, 2022
1756819
fix: update blog post url paths
dannysteenman Aug 5, 2022
4545528
feat: add user avatar
dannysteenman Aug 5, 2022
6e498f4
feat: add new blog post
dannysteenman Aug 5, 2022
76a5f19
Merge pull request #120 from dannysteenman/master
mbonig Aug 5, 2022
73aa639
updating slack link
mbonig Aug 10, 2022
bde0a8e
updating slack link
mbonig Aug 10, 2022
688c744
Merge pull request #122 from cdk-dev/slack-link
mbonig Aug 10, 2022
079e1e3
updating invite link
mbonig Aug 23, 2022
66b7a9a
updating invite link
mbonig Aug 23, 2022
ca5cd02
Merge pull request #123 from cdk-dev/slack-invite
mbonig Aug 23, 2022
986c55b
update invite link
mbonig Sep 9, 2022
9d0e0b0
update invite link
mbonig Sep 9, 2022
eac8a8a
Merge pull request #124 from cdk-dev/invite
mbonig Sep 9, 2022
b35ec15
Add post for CDK identifiers
bobbyhadz Sep 19, 2022
f38dc63
Merge pull request #126 from bobbyhadz/master
mbonig Sep 19, 2022
753113a
updating invite
mbonig Sep 20, 2022
e2b00b4
updating invite
mbonig Sep 20, 2022
971546e
Merge pull request #127 from cdk-dev/invite
mbonig Sep 20, 2022
946be0a
update slack invite
mbonig Nov 12, 2022
e9a469a
update slack invite
mbonig Nov 12, 2022
5e3b22b
Merge pull request #128 from cdk-dev/invite
mbonig Nov 12, 2022
9906a0e
Add mnapoli.fr/single-file-cdk/ blog post
mnapoli Jan 2, 2023
e67582e
Merge pull request #129 from mnapoli/blog-post
skorfmann Jan 2, 2023
3ce3edb
Update footer date to include 2023
Taity045 Jan 3, 2023
b95a8bd
Merge pull request #130 from Taity045/patch-2
mbonig Jan 3, 2023
be164bf
updating slack link
mbonig Jan 9, 2023
4d0daeb
updating slack link
mbonig Jan 9, 2023
7ce2315
Merge pull request #131 from cdk-dev/fix/slack-links
mbonig Jan 9, 2023
92319c8
Add post
keaeriksson Jan 17, 2023
2d5ac14
Merge pull request #132 from keaeriksson/master
mbonig Jan 18, 2023
991b0e6
add new author for Zied Ben Tahar and Two posts (Strapi with CDK) and…
ziedbentahar Feb 8, 2023
e43a402
update autor Zied Ben Tahar createdAt date
ziedbentahar Feb 8, 2023
431d57c
fixing createdAt date
ziedbentahar Feb 8, 2023
5557550
update author createdAt for Zied Ben Tahar
ziedbentahar Feb 8, 2023
388fe22
Fix small typo on front page
Mar 1, 2023
7c944e6
Merge pull request #135 from heckler1/sheckler/typo
mbonig Mar 1, 2023
c3e7243
Update Footer.tsx
mbonig Mar 4, 2023
9f272e7
Update Hero.tsx
mbonig Mar 4, 2023
aaf0a87
Update Footer.tsx
mbonig Mar 4, 2023
9fcb5b6
Merge pull request #133 from ziedbentahar/master
mbonig Mar 4, 2023
54a1250
Merge pull request #136 from cdk-dev/slack-invite
mbonig Mar 4, 2023
099efc6
Add Serverless Weather Reporting post
Mar 6, 2023
86feed3
Merge pull request #137 from deeheber/master
mbonig Mar 6, 2023
716f224
post
Jacco Mar 9, 2023
c6969f7
Merge pull request #138 from Jacco/orphan-post
mbonig Mar 9, 2023
4777365
Add AI powered Serverless meal planner post
ziedbentahar Mar 15, 2023
da55d3d
add banner image
ziedbentahar Mar 15, 2023
09ae596
Merge pull request #139 from ziedbentahar/master
mbonig Mar 15, 2023
55e4869
update slack invite
mbonig May 19, 2023
bc5e61f
update slack invite
mbonig May 19, 2023
ffd08e3
Merge pull request #141 from cdk-dev/invite-update
mbonig May 19, 2023
e64cb76
Create index.yml
miguel-a-calles-mba Jul 19, 2023
32fcb4f
Create index.yml
miguel-a-calles-mba Jul 19, 2023
fbea4f5
Update index.yml
miguel-a-calles-mba Jul 19, 2023
a9b8795
Create serverless-cookbook
miguel-a-calles-mba Jul 19, 2023
8e45860
Delete serverless-cookbook
miguel-a-calles-mba Jul 19, 2023
372c813
Create index.yml
miguel-a-calles-mba Jul 19, 2023
e22f195
Create miguel-a-calles-mba
miguel-a-calles-mba Jul 19, 2023
ea8316c
Delete miguel-a-calles-mba
miguel-a-calles-mba Jul 19, 2023
b6f3224
Create index.yml
miguel-a-calles-mba Jul 19, 2023
24d1002
Add files via upload
miguel-a-calles-mba Jul 19, 2023
ed117a3
Merge pull request #142 from miguel-a-calles-mba/master
mbonig Jul 19, 2023
a3342ef
Update index.yml
miguel-a-calles-mba Jul 19, 2023
4c29b3f
Update index.yml
miguel-a-calles-mba Jul 19, 2023
43d1a58
Update index.yml
miguel-a-calles-mba Jul 19, 2023
db72c4e
Merge pull request #143 from miguel-a-calles-mba/master
mbonig Jul 19, 2023
9bc523e
fixing super date
mbonig Jul 19, 2023
7321995
Merge pull request #144 from cdk-dev/fix/super-date
mbonig Jul 19, 2023
1986792
Added post
suds-sky Aug 1, 2023
6b06e6a
time change
suds-sky Aug 1, 2023
2c7222f
With quoted title
suds-sky Aug 1, 2023
13e0991
feat: add 3 new blog posts
dannysteenman Aug 1, 2023
4016d2b
Merge pull request #146 from dannysteenman/master
mbonig Aug 1, 2023
5918d1d
Trying with removing single quote
sudokar Aug 2, 2023
d77c759
Added sudokar to users
sudokar Aug 2, 2023
3902cf6
Merge pull request #145 from sudokar/appsync-cdk-construct-post
mbonig Aug 2, 2023
150ab70
feat: add users/oieduardorabelo
oieduardorabelo Aug 8, 2023
b5e8791
feat: users/oieduardorabelo and posts/extended-cdk-workshop
oieduardorabelo Aug 8, 2023
0d13efd
docs: oieduardorabelo avatar.jpg
oieduardorabelo Aug 8, 2023
9e09527
fix: timestamp for current date
oieduardorabelo Aug 8, 2023
4ca38de
fix: timestamp for users/oieduardorabelo
oieduardorabelo Aug 8, 2023
9151716
Merge pull request #147 from oieduardorabelo/master
mbonig Aug 10, 2023
5af5e6b
updating slack invite link
mbonig Aug 10, 2023
1c7a2c1
fixing slack invite link
mbonig Aug 10, 2023
2672334
Merge pull request #150 from cdk-dev/slack-invite
mbonig Aug 10, 2023
76d6e43
add cicd slackbot and ephemeral stack posts
martzmakes Aug 21, 2023
adf5411
Merge pull request #152 from martzcodes/cicd-slackbot-and-ephemeral-s…
mbonig Aug 22, 2023
d3d1a74
cdk multicloud blog
sempfa Sep 18, 2023
80128f4
fix avatar extension name
sempfa Sep 18, 2023
93b4f37
update post date
sempfa Sep 18, 2023
3ba381a
update post date again to match blog publish date
sempfa Sep 18, 2023
9c3944b
Merge pull request #153 from sempfa/master
mbonig Sep 18, 2023
eb0696b
updating invite link
mbonig Nov 3, 2023
dcefd1f
updating invite link
mbonig Nov 3, 2023
7b35aa4
Merge branch 'master' into cdk-invite
mbonig Nov 3, 2023
c2d762f
Merge pull request #154 from cdk-dev/cdk-invite
mbonig Nov 3, 2023
9c15d66
add Full Stack TypeScript with AWS Cloud Development Kit course
tlakomy Nov 22, 2023
0eef063
Update index.yml
tlakomy Dec 8, 2023
20a9034
Merge pull request #155 from tlakomy/add-full-stack-typescript-with-a…
mbonig Dec 8, 2023
271a65a
Add John Nguyen's Post
jolo-dev Dec 12, 2023
8f08e43
Merge pull request #157 from jolo-dev/post/demystifying-ecs-pattern
mbonig Dec 12, 2023
2804438
Add missing banner
jolo-dev Dec 12, 2023
c64a16e
Merge pull request #158 from jolo-dev/post/demystifying-ecs-pattern
mbonig Dec 12, 2023
d4d164d
updating invite link for slack
mbonig Jan 17, 2024
fae20f5
updating invite link for slack
mbonig Jan 17, 2024
aa0ca69
Merge pull request #160 from cdk-dev/invite-link
mbonig Jan 17, 2024
9c9c63f
updating slack invite
mbonig Feb 7, 2024
69a7490
updating slack invite
mbonig Feb 7, 2024
5001489
Merge pull request #162 from cdk-dev/invite
mbonig Feb 7, 2024
380326d
feat: add new post about aws cdk starter project
rehanvdm Mar 2, 2024
01d15fd
Merge pull request #163 from rehanvdm/master
mbonig Mar 4, 2024
53e1326
feat: add two opensource cdk tools
dannysteenman Mar 12, 2024
0e3699e
fix: update dates
dannysteenman Mar 12, 2024
d5b2694
Merge pull request #164 from dannysteenman/master
mbonig Mar 12, 2024
1b9a09b
feat: add blog post about Buttonize
FilipPyrek Mar 24, 2024
09af0f9
Merge pull request #165 from FilipPyrek/master
mbonig Mar 25, 2024
a937a32
feat: add firewall factory to resources
daknhh Mar 25, 2024
a98354d
fix firewall factory and add authorid
daknhh Mar 26, 2024
7bf3df8
add author profile
daknhh Mar 26, 2024
c403065
Merge pull request #166 from daknhh/master
mbonig Mar 26, 2024
35856a7
upgrade js-yaml
skorfmann Apr 25, 2024
492af30
Don't autoload yml from nextjs context
skorfmann Apr 25, 2024
df3808a
wip
skorfmann Jun 13, 2024
ca39f2a
wip
skorfmann Jun 13, 2024
25e22e4
wip
skorfmann Jun 14, 2024
6b62d2b
wip
skorfmann Jun 14, 2024
6faf54f
wip
skorfmann Jun 14, 2024
3e883b9
amplify error?
skorfmann Jun 14, 2024
d81640d
fix unescaped '
skorfmann Jun 14, 2024
3fe2041
fixesj
skorfmann Jun 14, 2024
77a4b3a
not needed here
skorfmann Jun 14, 2024
0c40cf5
post images
skorfmann Jun 14, 2024
8ac59a8
resources
skorfmann Jun 14, 2024
54826d9
fixes
skorfmann Jun 14, 2024
7714d97
notifications
skorfmann Jun 14, 2024
e5c56fb
adjust remote pattern
skorfmann Jun 14, 2024
977a0ff
post subscriptions
skorfmann Jun 14, 2024
60ac2b2
get it mergeable
skorfmann Jun 16, 2024
205de85
Merge pull request #170 from cdk-dev/nextjs14
skorfmann Jun 16, 2024
741e29c
remove imported frontend
skorfmann Jun 16, 2024
52caef1
move into root
skorfmann Jun 16, 2024
a33c6ef
fix warnings
skorfmann Jun 16, 2024
f4255d9
Merge pull request #171 from cdk-dev/cleanup
skorfmann Jun 16, 2024
e2fb40f
updates slack invite
mbonig Jun 20, 2024
e492231
Merge pull request #175 from cdk-dev/invite-fix
mbonig Jun 20, 2024
4c45da4
import / export data from / to new deployments
skorfmann Jun 20, 2024
37bd0a2
Merge pull request #176 from cdk-dev/seed
skorfmann Jun 20, 2024
0cabc1f
add plausible analytics
skorfmann Jun 26, 2024
a490434
drop test settings
skorfmann Jun 26, 2024
bb90969
Merge pull request #177 from cdk-dev/analytics
skorfmann Jun 26, 2024
e08b1ab
pnpm is not used here :)
skorfmann Jun 26, 2024
35d64d9
Updates Hero.tsx with new slack link
mbonig Jan 3, 2025
fe00f68
Updates Footer.tsx with new slack link
mbonig Jan 3, 2025
629575d
Merge pull request #179 from cdk-dev/fix-slack-link
mbonig Jan 3, 2025
ca62390
Updates Slack invite link
mbonig Sep 18, 2025
1e63bdc
Merge pull request #180 from cdk-dev/fix/slack-links
mbonig Sep 18, 2025
cd9e1ac
Update Footer.tsx with new slack link
mbonig Jul 24, 2026
b120766
Update Hero.tsx with new slack link
mbonig Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
133 changes: 31 additions & 102 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,114 +1,43 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# Created by https://www.toptal.com/developers/gitignore/api/node
# Edit at https://www.toptal.com/developers/gitignore?templates=node
# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov
# testing
/coverage

# nyc test coverage
.nyc_output
# next.js
/.next/
/out/

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# production
/build

# Bower dependency directory (https://bower.io/)
bower_components
# misc
.DS_Store
*.pem

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Dependency directories
node_modules/
jspm_packages/
# local env files
.env*.local

# TypeScript v1 declaration files
typings/
# vercel
.vercel

# TypeScript cache
# typescript
*.tsbuildinfo
next-env.d.ts

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# amplify
.amplify
amplify_outputs*
amplifyconfiguration*

# End of https://www.toptal.com/developers/gitignore/api/node
/cdk.out
3 changes: 2 additions & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ This is a community driven project for the Cloud Development Kit (CDK) and will
- [AWS CDK](https://aws.amazon.com/cdk/)
- [CDK for Kubernetes](https://cdk8s.io)
- [Terraform CDK](https://cdk.tf)
- [Projen](https://projen.io/)

## Contributions

We'd love to have more people on board - Just start to create issues or get in involved here: https://github.com/cdk-dev/base
We'd love to have more people on board - Head over to [cdk.dev](https://cdk.dev) and join our Slack.
12 changes: 12 additions & 0 deletions amplify/auth/resource.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineAuth } from '@aws-amplify/backend';

/**
* Define and configure your auth resource
* @see https://docs.amplify.aws/gen2/build-a-backend/auth
*/
export const auth = defineAuth({
loginWith: {
email: true,
},
groups: ['admin', 'user'],
});
75 changes: 75 additions & 0 deletions amplify/backend.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { defineBackend } from '@aws-amplify/backend';
import { auth } from './auth/resource';
import { data } from './data/resource';
import { storage } from './storage/resource';
import { TableNotifications } from './constructs/table-notifications';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as snsSubscriptions from 'aws-cdk-lib/aws-sns-subscriptions';
import * as iam from 'aws-cdk-lib/aws-iam';

/**
* @see https://docs.amplify.aws/react/build-a-backend/ to add storage, functions, and more
*/
const backend = defineBackend({
auth,
data,
storage
});


const dataResources = backend.data.resources;

dataResources.cfnResources.cfnGraphqlApi.xrayEnabled = true;
// Object.values(dataResources.cfnResources.amplifyDynamoDbTables).forEach((table) => {
// table.pointInTimeRecoveryEnabled = true;
// });


// === Subscribers ===

const subscribers = backend.createStack('subscribers')
const topic = new sns.Topic(subscribers, 'DdbToSnsTopic', {
displayName: 'New Post on cdk.dev',
});

new TableNotifications(subscribers, 'TableNotifications', {
table: dataResources.tables['Post'],
topic,
message: 'A new post with the title "<$.dynamodb.NewImage.title.S>" has been added to https://cdk.dev - check it out now'
})

const policy = new iam.Policy(subscribers, 'SubscribersPolicy', {
document: new iam.PolicyDocument({
statements: [new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
resources: [topic.topicArn],
actions: ['sns:Subscribe'],
})]
}),
});

backend.auth.resources.authenticatedUserIamRole.attachInlinePolicy(policy)
backend.auth.resources.unauthenticatedUserIamRole.attachInlinePolicy(policy);

backend.addOutput({
custom: {
subscribersTopicArn: topic.topicArn,
}
})

// === Link Notifications ===

const links = backend.createStack('links')
const t = new sns.Topic(links, 'DdbToSnsTopic', {
displayName: 'New Link for cdk.dev',
});

t.addSubscription(new snsSubscriptions.EmailSubscription('sebastian@korfmann.net'));

new TableNotifications(links, 'TableNotifications', {
table: dataResources.tables['LinkSuggestion'],
topic: t,
message: 'A new link with the url "<$.dynamodb.NewImage.url.S>" has been added to https://cdk.dev - check it out now'
})

export default backend;
46 changes: 46 additions & 0 deletions amplify/constructs/table-notifications.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as pipes from 'aws-cdk-lib/aws-pipes';
import * as iam from 'aws-cdk-lib/aws-iam';
import * as logs from 'aws-cdk-lib/aws-logs';
import { Construct } from 'constructs';

export class TableNotifications extends Construct {
constructor(scope: Construct, id: string, props: { table: dynamodb.ITable, topic: sns.ITopic, message: string }) {
super(scope, id);

const { table, topic, message } = props;

const pipeRole = new iam.Role(this, 'PipeRole', {
assumedBy: new iam.ServicePrincipal('pipes.amazonaws.com'),
});

table.grantStreamRead(pipeRole);
topic.grantPublish(pipeRole);

// Create a CloudWatch Log Group
const logGroup = new logs.LogGroup(this, 'PipeLogGroup', {
retention: logs.RetentionDays.ONE_WEEK,
});

new pipes.CfnPipe(this, 'DdbToSnsPipe', {
roleArn: pipeRole.roleArn,
source: table.tableStreamArn!,
sourceParameters: {
dynamoDbStreamParameters: {
startingPosition: 'LATEST',
},
},
target: topic.topicArn,
targetParameters: {
inputTemplate: message,
},
logConfiguration: {
cloudwatchLogsLogDestination: {
logGroupArn: logGroup.logGroupArn,
},
level: 'INFO',
},
});
}
}
89 changes: 89 additions & 0 deletions amplify/data/resource.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import { type ClientSchema, a, defineData, defineFunction } from '@aws-amplify/backend';

const schema = a.schema({
Author: a
.model({
name: a.string().required(),
avatar: a.string().required(),
posts: a.hasMany('Post', 'authorId'),
})
.authorization((allow) => [
allow.guest().to(['read']),
allow.authenticated('identityPool').to(['read']),
]),
Post: a
.model({
title: a.string().required(),
content: a.string().required(),
url: a.string().required(),
categories: a.string().required().array(),
authorId: a.id().required(),
banner: a.string(),
author: a.belongsTo('Author', 'authorId'),
})
.authorization((allow) => [
allow.guest().to(['read']),
allow.authenticated('identityPool').to(['read']),
]),
Resource: a
.model({
title: a.string().required(),
content: a.string().required(),
url: a.string().required(),
categories: a.string().required().array(),
banner: a.string()
})
.authorization((allow) => [
allow.guest().to(['read']),
allow.authenticated('identityPool').to(['read']),
]),
LinkSuggestion: a
.model({
url: a.string().required(),
comment: a.string(),
})
.authorization((allow) => [
allow.guest().to(['create']),
allow.authenticated('identityPool').to(['create']),
])
});

export type Schema = ClientSchema<typeof schema>;

export const data = defineData({
schema,
authorizationModes: {
defaultAuthorizationMode: 'iam'
}
});


/*== STEP 2 ===============================================================
Go to your frontend source code. From your client-side code, generate a
Data client to make CRUDL requests to your table. (THIS SNIPPET WILL ONLY
WORK IN THE FRONTEND CODE FILE.)

Using JavaScript or Next.js React Server Components, Middleware, Server
Actions or Pages Router? Review how to generate Data clients for those use
cases: https://docs.amplify.aws/gen2/build-a-backend/data/connect-to-API/
=========================================================================*/

/*
"use client"
import { generateClient } from "aws-amplify/data";
import type { Schema } from "@/amplify/data/resource";

const client = generateClient<Schema>() // use this Data client for CRUDL requests
*/

/*== STEP 3 ===============================================================
Fetch records from the database and use them in your frontend component.
(THIS SNIPPET WILL ONLY WORK IN THE FRONTEND CODE FILE.)
=========================================================================*/

/* For example, in a React component, you can use this snippet in your
function's RETURN statement */
// const { data: posts } = await client.models.Post.list()

// return <ul>{posts.map(post => <li key={post.title}>{post.title} - {post.content}</li>)}</ul>

3 changes: 3 additions & 0 deletions amplify/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"type": "module"
}
Loading