{"id":29943249,"url":"https://github.com/sourcefuse/terraform-aws-arc-postgresql-mgmt","last_synced_at":"2026-02-26T01:47:53.768Z","repository":{"id":209891906,"uuid":"716290262","full_name":"sourcefuse/terraform-aws-arc-postgresql-mgmt","owner":"sourcefuse","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-17T01:41:35.000Z","size":4364,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-01T05:55:58.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcefuse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-08T20:34:56.000Z","updated_at":"2024-08-17T01:41:20.000Z","dependencies_parsed_at":"2024-04-26T01:47:10.710Z","dependency_job_id":"9800b62e-3641-4b4a-bf61-1153f24537e0","html_url":"https://github.com/sourcefuse/terraform-aws-arc-postgresql-mgmt","commit_stats":null,"previous_names":["sourcefuse/terraform-postgresql-aws-arc-mgmt","sourcefuse/terraform-aws-arc-postgresql-mgmt"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/sourcefuse/terraform-aws-arc-postgresql-mgmt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-postgresql-mgmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-postgresql-mgmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-postgresql-mgmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-postgresql-mgmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcefuse","download_url":"https://codeload.github.com/sourcefuse/terraform-aws-arc-postgresql-mgmt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-postgresql-mgmt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29848352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T22:37:40.667Z","status":"ssl_error","status_checked_at":"2026-02-25T22:37:25.960Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-03T02:14:47.400Z","updated_at":"2026-02-26T01:47:53.763Z","avatar_url":"https://github.com/sourcefuse.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Module Structure](./static/banner.png)\n\n# [terraform-postgresql-aws-arc-mgmt](https://github.com/sourcefuse/terraform-postgresql-aws-arc-mgmt)\n\n\u003ca href=\"https://github.com/sourcefuse/terraform-postgresql-aws-arc-mgmt/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/release/sourcefuse/terraform-postgresql-aws-arc-mgmt.svg?style=for-the-badge\" alt=\"Latest Release\"/\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sourcefuse/terraform-postgresql-aws-arc-mgmt/commits\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/sourcefuse/terraform-postgresql-aws-arc-mgmt.svg?style=for-the-badge\" alt=\"Last Updated\"/\u003e\u003c/a\u003e ![Terraform](https://img.shields.io/badge/terraform-%235835CC.svg?style=for-the-badge\u0026logo=terraform\u0026logoColor=white) ![GitHub Actions](https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white)\n\n[![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=sourcefuse_terraform-aws-arc-postgresql-mgmt)](https://sonarcloud.io/summary/new_code?id=sourcefuse_terraform-aws-arc-postgresql-mgmt)\n\n[![snyk](https://github.com/sourcefuse/terraform-postgresql-aws-arc-mgmt/actions/workflows/snyk.yaml/badge.svg)](https://github.com/sourcefuse/terraform-postgresql-aws-arc-mgmt/actions/workflows/snyk.yaml)\n\n## Overview\n\nIt demonstrates how to create and manage a PostgreSQL database, roles, schemas, and associated resources on AWS.\n\nIn the example folder, you will see how this module should be called in downstream and how we can pass the values.\n\n## Usage\n  ```\nrequired_providers {\n    postgresql = {\n      version = \"~\u003e 1.21\"\n      source  = \"cyrilgdn/postgresql\"\n    }\n    aws = {\n      version = \"~\u003e 5.0\"\n      source  = \"hashicorp/aws\"\n    }\n  }\n  ```\n1. Initialize Terraform with the backend config\n  ```shell\n  terraform init -backend-config=config.dev.hcl\n  ```\n2. Plan Terraform\n  ```shell\n  terraform plan -var-file .\\tfvars\\dev.tfvars\n  ```\n3. Apply Terraform\n  ```shell\n  terraform apply -var-file .\\tfvars\\dev.tfvars\n  ```\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | ~\u003e 1.3, \u003c 2.0.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 5.0, \u003c 6.0 |\n| \u003ca name=\"requirement_postgresql\"\u003e\u003c/a\u003e [postgresql](#requirement\\_postgresql) | ~\u003e 1.21 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.28.0 |\n| \u003ca name=\"provider_postgresql\"\u003e\u003c/a\u003e [postgresql](#provider\\_postgresql) | 1.21.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_ssm_parameter.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [postgresql_database.pg_db](https://registry.terraform.io/providers/cyrilgdn/postgresql/latest/docs/resources/database) | resource |\n| [postgresql_default_privileges.pg_default_privileges](https://registry.terraform.io/providers/cyrilgdn/postgresql/latest/docs/resources/default_privileges) | resource |\n| [postgresql_role.pg_role](https://registry.terraform.io/providers/cyrilgdn/postgresql/latest/docs/resources/role) | resource |\n| [postgresql_schema.pg_schema](https://registry.terraform.io/providers/cyrilgdn/postgresql/latest/docs/resources/schema) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_pg_roles\"\u003e\u003c/a\u003e [pg\\_roles](#input\\_pg\\_roles) | A map of objects where each key-value pair represents a PostgreSQL role | \u003cpre\u003emap(object({\u003cbr\u003e    postgres_role_name = string\u003cbr\u003e    login              = string\u003cbr\u003e    password           = string\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_pg_ssm_parameters\"\u003e\u003c/a\u003e [pg\\_ssm\\_parameters](#input\\_pg\\_ssm\\_parameters) | postgresql SSM parameters | \u003cpre\u003emap(object({\u003cbr\u003e    name     = string\u003cbr\u003e    type     = string\u003cbr\u003e    password = string\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_postgresql_database\"\u003e\u003c/a\u003e [postgresql\\_database](#input\\_postgresql\\_database) | A map where each key-value pair represents a PostgreSQL database configuration | \u003cpre\u003emap(object({\u003cbr\u003e    db_name           = string\u003cbr\u003e    db_owner          = string\u003cbr\u003e    template          = optional(string, null)\u003cbr\u003e    lc_collate        = optional(string, null)\u003cbr\u003e    connection_limit  = optional(string, null)\u003cbr\u003e    allow_connections = optional(string, null)\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_postgresql_default_privileges\"\u003e\u003c/a\u003e [postgresql\\_default\\_privileges](#input\\_postgresql\\_default\\_privileges) | configuration block for postgresql default privileges | \u003cpre\u003emap(object({\u003cbr\u003e    role        = string\u003cbr\u003e    database    = string\u003cbr\u003e    schema      = string\u003cbr\u003e    owner       = string\u003cbr\u003e    object_type = string\u003cbr\u003e    privileges  = list(string)\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_postgresql_schema\"\u003e\u003c/a\u003e [postgresql\\_schema](#input\\_postgresql\\_schema) | configuration block for postgresql schema | \u003cpre\u003emap(object({\u003cbr\u003e    schema_name   = string\u003cbr\u003e    schema_owner  = optional(string, null)\u003cbr\u003e    database      = optional(string, null)\u003cbr\u003e    if_not_exists = optional(string, null)\u003cbr\u003e    drop_cascade  = optional(string, null)\u003cbr\u003e\u003cbr\u003e    policy = optional(list(object({\u003cbr\u003e      usage = optional(string, null)\u003cbr\u003e      role  = optional(string, null)\u003cbr\u003e    })), [])\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_arn\"\u003e\u003c/a\u003e [arn](#output\\_arn) | ARN of the parameter |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Development\n\n### Prerequisites\n\n- [terraform](https://learn.hashicorp.com/terraform/getting-started/install#installing-terraform)\n- [terraform-docs](https://github.com/segmentio/terraform-docs)\n- [pre-commit](https://pre-commit.com/#install)\n- [golang](https://golang.org/doc/install#install)\n- [golint](https://github.com/golang/lint#installation)\n\n### Configurations\n\n- Configure pre-commit hooks\n\n```sh\npre-commit install\n```\n### Git commits\n\nwhile Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch\n\nFor Example\n\n```sh\ngit commit -m \"your commit message #major\"\n```\nBy specifying this , it will bump the version and if you dont specify this in your commit message then by default it will consider patch and will bump that accordingly\n\n### Tests\n\n- Tests are available in `test` directory\n- Configure the dependencies\n\n```sh\ncd test\ngo mod init github.com/sourcefuse/terraform-aws-ref-arch-db\ngo get github.com/gruntwork-io/terratest/modules/terraform\n```\n\n- Now execute the test\n\n```sh\ncd test/\ngo test\n```\n\n## Authors\n\nThis project is authored by:\n\n- SourceFuse ARC Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-postgresql-mgmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-postgresql-mgmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-postgresql-mgmt/lists"}