Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
d0b831b
feat(databases): add RDS PostgreSQL db and server service modules
Mar 17, 2026
61ce597
feat(databases-postgress): fix db instance create
Mar 19, 2026
d87b7c8
feat(rds-postgres-server): resolve vpc_id dynamically from nullplatfo…
Mar 20, 2026
aa84e45
feat(rds-postgres-server): set linkable_to to [] after service is dep…
Mar 20, 2026
73f7457
feat(databases-postgress): add requirements folder
Mar 20, 2026
c4c7c8d
feat(rds-postgres-server): resolve region dynamically from nullplatfo…
Mar 20, 2026
c713409
fix(rds-postgres-server): fallback to entity_nrn when service.nrn is …
Mar 20, 2026
6c62589
fix(rds-postgres-server): guard against null stored_keys in provider …
Mar 20, 2026
3f878c8
fix(rds-postgres-server): guard .results null in provider queries + d…
Mar 20, 2026
f9067e6
fix(rds-postgres-server): pass explicit --limit to np provider list
Mar 20, 2026
9af05cb
fix(rds-postgres-server): disable the linkable_to patch in write_serv…
Mar 20, 2026
6a3be98
docs(rds-postgres): add README for rds-postgres-db and rds-postgres-s…
Mar 25, 2026
029780b
fix(rds-postgres-server): propagate TFSTATE_BUCKET through link/unlin…
Apr 20, 2026
67a0a59
fix(rds-postgres-server): skip db_name check on unlink of never-creat…
Apr 21, 2026
ab5a12f
Merge pull request #12 from nullplatform/fix/rds-postgres-server-tfst…
sebastiancorrea81 Apr 21, 2026
0d47aab
Merge pull request #13 from nullplatform/fix/rds-postgres-server-db-n…
jcastiarena Apr 21, 2026
d257d5c
feat(rds-postgres-server): create dedicated AssumeRole IAM role in re…
Jul 2, 2026
659c57d
fix(rds-postgres-server): gate existing IAM policies on iam_create_role
Jul 2, 2026
59e1c70
feat(rds-postgres-db): add requirements/ module with AssumeRole IAM role
Jul 2, 2026
1809735
docs: fix secret-naming citation and clarify cluster-wide Secrets Man…
Jul 2, 2026
6b14916
fix(rds-postgres-db): disambiguate secretsmanager policy name to avoi…
Jul 2, 2026
9f6c51c
feat(rds-postgres-server): assume the AssumeRole IAM role at runtime
Jul 2, 2026
40c0f7f
feat(rds-postgres-db): assume the AssumeRole IAM role at runtime
Jul 2, 2026
1f54b2a
fix(rds-postgres): declare provider_categories at workflow level, not…
Jul 3, 2026
1270aed
fix(rds-postgres): resolve the AssumeRole ARN via np provider CLI, no…
Jul 3, 2026
09659b4
fix(rds-postgres-db): add missing S3 tfstate-bucket policy
Jul 3, 2026
899523c
fix(rds-postgres-db): use full entity_nrn for RDS server auto-discovery
Jul 3, 2026
238c001
fix(rds-postgres-server): allow RDS ingress from all VPC CIDR associa…
Jul 3, 2026
62298b2
docs: add AssumeRole setup guide and operational notes from live end-…
Jul 3, 2026
63c8adb
docs: add concrete module examples for providers and requirements/ in…
Jul 3, 2026
94fdf28
style(rds-postgres-server): run tofu fmt on the security group ingres…
Jul 3, 2026
7d06dee
feat(rds-postgres): align AssumeRole with services-s-3 conventions
Jul 6, 2026
28be403
feat(rds-postgres): add specs/install/aws to register the service on …
Jul 6, 2026
4b78db5
fix(rds-postgres): resolve IAM provider via --categories up the NRN h…
agustincelentano Jul 6, 2026
367fb46
chore: adapt repo for standalone services-postgresql-rds
Jul 7, 2026
9ac0562
ci: adopt the standard nullplatform-actions CI stack, matching servic…
Jul 7, 2026
c6a3304
chore: merge unrelated history with main to enable PR creation
Jul 7, 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
10 changes: 10 additions & 0 deletions .github/workflows/branch-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: branch-validation

on:
pull_request:
branches:
- main

jobs:
branch-validation:
uses: nullplatform/actions-nullplatform/.github/workflows/branch-validation.yml@main
28 changes: 0 additions & 28 deletions .github/workflows/ci.yml

This file was deleted.

10 changes: 10 additions & 0 deletions .github/workflows/conventional-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: conventional-commit

on:
pull_request:
branches:
- main

jobs:
conventional-commit:
uses: nullplatform/actions-nullplatform/.github/workflows/conventional-commit.yml@main
15 changes: 15 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: release

on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write

jobs:
release:
uses: nullplatform/actions-nullplatform/.github/workflows/release.yml@main
secrets: inherit
10 changes: 10 additions & 0 deletions .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: shellcheck

on:
pull_request:
branches:
- main

jobs:
shellcheck:
uses: nullplatform/actions-nullplatform/.github/workflows/shellcheck.yml@main
14 changes: 14 additions & 0 deletions .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: trivy

on:
pull_request:
branches:
- main

permissions:
contents: read
security-events: write

jobs:
trivy:
uses: nullplatform/actions-nullplatform/.github/workflows/trivy-tofu-scan.yml@main
143 changes: 15 additions & 128 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,134 +1,21 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-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

# nyc test coverage
.nyc_output

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

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# 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 variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

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

# Next.js build output
.next
# IntelliJ project files
.idea
*.iml
out
gen

# 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
# VSCode project files
.vscode/

# vuepress build output
.vuepress/dist
# Terraform / OpenTofu
*.tfstate
*.tfstate.backup
.terraform/

# vuepress v2.x temp and cache directory
.temp
.cache
# .terraform.lock.hcl is intentionally tracked (pins provider versions) —
# do not add it here.

# Docusaurus cache and generated files
.docusaurus
*.tfvars
!terraform.tfvars.example

# 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

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Intellij

.idea
.DS_Store
9 changes: 9 additions & 0 deletions .trivyignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Trivy misconfiguration suppressions for this repo.
# Each entry is intentional and documented; revisit if the module changes.

# AVD-AWS-0104 — RDS security group allows unrestricted egress (0.0.0.0/0).
# Standard for an RDS instance's own security group (matches the AWS default
# VPC SG behavior): the instance needs outbound access for things like CA
# bundle/extension fetches and Secrets Manager rotation. Inbound is already
# restricted to PostgreSQL (5432) from the VPC's own CIDR blocks.
AVD-AWS-0104
5 changes: 0 additions & 5 deletions Dockerfile

This file was deleted.

32 changes: 17 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
<h2 align="center">
<a href="https://httpie.io" target="blank_">
<img height="100" alt="nullplatform" src="https://nullplatform.com/favicon/android-chrome-192x192.png" />
</a>
<br>
<br>
Nullplatform "Any Technology" Template
<br>
</h2>
# services-postgresql-rds

This is a minimalistic sample on how you can create an application on arbitrary technology.
In particular, we're spinning up an image that contains an echo server.
You can check *Echo Server* documentation [here](https://ealenn.github.io/Echo-Server/).
nullplatform service definitions for AWS RDS PostgreSQL:

## How do I modify this template to build my own application?
- [`rds-postgres-server/`](rds-postgres-server/README.md) — provisions the RDS
PostgreSQL instance itself.
- [`rds-postgres-db/`](rds-postgres-db/README.md) — provisions a database +
application user on an existing `rds-postgres-server` instance, linked via
the `connect` link.

1. Change the Dockerfile to run the application / binary that you are building
2. Deploy your application in nullplatform
Each service directory is self-contained: `entrypoint/`, `workflows/`,
`scripts/`, and `specs/` are read directly by the nullplatform agent at
runtime. `specs/requirements/aws/` and `specs/install/aws/` are one-time
setup Terraform, applied out-of-band by an account operator — see each
service's own README for the full setup guide ("AssumeRole Setup Guide") and
`specs/install/README.md`.

This repository was extracted from `nullplatform/services` (the
`databases/rds-postgres-server` and `databases/rds-postgres-db` directories),
preserving their commit history.
Loading
Loading