Security and Compliance Control Mapping for Forked Deployments

Forge Platform itself cannot meaningfully represent a production deployment as "compliant" because Forge is not operated as a centralized SaaS platform. Forge is always deployed, extended, configured, and operated inside AWS accounts owned by the operator organization. Compliance outcomes therefore depend on the deployed environment, operational controls, organizational processes, and legal agreements implemented by the operator.

Purpose

This document maps Forge capabilities to common security and compliance expectations and clarifies what must be implemented and evidenced by the organization operating a forked deployment.

  • Forge provides a security-focused technical baseline designed to support common compliance objectives. Compliance outcomes are achieved at the level of the deployed system and the operating organization, not at the framework or source-repository level.
  • Progress is a developer-assessed mapping of repository capabilities to common compliance expectations. It is not an audit determination, certification, attestation, or legal interpretation.

Definitions

  • Operator: The organization running a forked deployment of Forge in its own AWS accounts.
  • Forge Platform: Reference services, libraries, and infrastructure as code (IaC) that operators can deploy and extend.

Adoption stance (agnostic by design)

Forge intentionally ships a minimal-assumption, non-prescriptive baseline so teams can adopt it without redesigning their AWS estate. The default developer path uses a sandbox profile (forge-sandbox) and avoids forcing a specific enterprise landing-zone topology.

What this means in practice:

  • Controls in this document are a reference and recommendation set, not a mandate for one AWS account model.
  • Some operators run single-account or light setups; others run enterprise multi-account structures with centralized security tooling.
  • Both paths can satisfy control objectives when required controls are implemented and evidenced in the operator environment.
  • If you already use a landing-zone framework (for example, Superwerker), map Forge control objectives into that foundation instead of reshaping your organization around Forge.

Responsibility split

PartyRole
Forge PlatformReference application, libraries, and CDK stacks operators can deploy. Security-relevant patterns (authn/authz, audit emission, infrastructure defaults) are implemented here when stated below.
OperatorOwns the AWS accounts, data classification, policies, workforce training, vendor agreements (for example BAAs for HIPAA), data processing agreements (DPAs) and lawful basis (GDPR), SOC 2 control operation and evidence, monitoring of the full AWS account, and gap closure outside this repository.

Deploying Forge does not make an operator compliant. Compliance requires the deployed system, operating processes, and legal agreements to work together.

Architectural planes (audit vocabulary)

Auditors often partition systems into planes. The table below maps that vocabulary to how Forge is implemented and operated.

PlaneMeaning in ForgePrimary locations
Control planeIdentity, tenant-scoped authorization patterns, audit emission, configuration, notification orchestrationlibs/security, services/auth-service, libs/audit, services/audit-service, services/notification-service, config/
Audit and governance planeImmutable event capture, compliance logging, traceability of actions across actors and serviceslibs/audit, services/audit-service, docs/architecture-guides/audit-service.md
Data planeDomain data in RDS, DynamoDB, S3 as provisioned by CDKinfra/src/lib/stack/forge-datastore-stack.ts, service Flyway schemas
Observability and security planeLogging, metrics, tracing hooks; edge and network controlsconfig/src/main/resources/logging.properties, otel.properties, infra (WAF, VPC, ECS), docs/architecture-decisions/0007-observability-strategy.md

Interpretation model

The tables below intentionally separate three layers:

  • What is implemented in this repository.
  • What is typically expected in compliance frameworks.
  • What the operator must implement, configure, and evidence in the deployed environment.

Progress checklist (repository and typical deploy)

The Forge Platform security posture continues to evolve through ongoing platform hardening, infrastructure refinement, and ADR-driven architecture work. Several areas marked as partial or operator-extensible are active areas of platform evolution and may change over time as the platform matures.

Progress is expressed using the symbols below for a standard AWS deployment.

SymbolMeaning
Implemented in this repository for the standard deploy path.
🟠Partial coverage: building blocks exist, but operator wiring, policy, or additional work is still required.
Not implemented in this repository: gap, roadmap item, or operator-owned without first-class automation here.

Identity and access management

ProgressItemNotesFramework hints
Human authentication via Amazon Cognito User Pools (JWT)Actor pool and app client; password policy on service pool; see ADR-0004 and infra Cognito stacksSupports control objectives commonly associated with SOC 2 CC6.x and HIPAA §164.312(d), when operated alongside required organizational policies and procedures
Service-to-service JWT and @AllowedServiceslibs/security, Cognito service pool, secrets for service accountsSupports least-privilege control objectives commonly associated with SOC 2 CC6.x
🟠AWS STS AssumeRoleWithWebIdentity for AWS API access from servicesADR-0005; operator must align IAM roles and pool trust per environmentSupports control objectives commonly associated with SOC 2 CC6.x when combined with operator IAM governance
Customer SSO (SAML or OIDC IdP federation)Current docs focus on Cognito-native flows; enterprise IdP federation is an operator integration topicSupports SOC 2 CC6.x control objectives when implemented
GitHub Actions OIDC to AWS (id-token: write).github/workflows/02-build-test.yml and deploy workflows; ForgeGithubRoleConstruct pattern in infraSupports supply-chain related control objectives commonly associated with SOC 2 CC8.x
Long-lived IAM user keys for runtimeDesign favors roles and Cognito; operators should avoid long-lived credentials in their accountsMisconfiguration risk under SOC 2 CC6.x objectives

Network and edge

ProgressItemNotesFramework hints
Single VPC per environment with public/private subnet splitADR-0020; ForgeNetworkConstructSupports control objectives commonly associated with SOC 2 CC6.x
ECS tasks in private subnetsdocs/architecture-guides/infrastructure.mdDefense in depth for common network control expectations
Internet-facing ALB only where configured; WAF associationInfrastructure constructs (WAF ARN export, ALB rules)Supports control objectives commonly associated with SOC 2 CC6.x when WAF policies are configured and monitored
VPC interface endpoint for Secrets ManagerForgeNetworkConstructReduces internet exposure for secret retrieval
Perimeter hardening (Shield Advanced, custom threat models)Not codified as a default in this repositoryRisk-based operator decision

Data protection

ProgressItemNotesFramework hints
RDS PostgreSQL with encryption at reststorageEncrypted: true on instance; see ForgePostgresConstructSupports encryption-at-rest objectives commonly associated with SOC 2 CC6.x and HIPAA §164.312(a)(2)(iv) when in scope
RDS in VPC private subnets; SG allows DB port from VPC CIDRForgePostgresConstructNetwork isolation patterns
Automated RDS backups with stage-based retentionrdsAutomatedBackupRetentionFor(stage)Availability objectives depend on operator RPO/RTO requirements
DynamoDB and S3 for platform dataForgeDatastoreStack; S3 default encryption (managed keys) in ForgeS3ConstructOperators classify data per table and bucket
🟠Customer-managed KMS keys (CMKs) everywhereRDS uses an AWS-managed pattern in current CDK; operators can extend for CMK requirementsMany enterprise and regulated environments require CMK controls
🟠Row-level tenant isolation in application layerMulti-tenant patterns depend on product usage; no single enforced row-level security (RLS) story is documented hereRequires data model review and operator enforcement of tenant boundaries

Secrets and configuration

ProgressItemNotesFramework hints
ECS injects secrets from Secrets Manager (DB, Cognito, OAuth, licence, SmallRye key)ForgeFargateServiceConstructSupports credential handling objectives commonly associated with SOC 2 CC6.x
Service account password rotation via Secrets ManagerCognito service account constructs and rotation LambdasSupports credential lifecycle expectations
No secrets committed to application sourceSecrets supplied via environment variables or Secrets Manager; GitHub secrets for CISupports SOC 2 CC6.x and supply chain objectives commonly associated with CC8.x
Centralized configuration serviceconfig/ module and platform-config.yml patternSupports change management expectations

Audit and logging

ProgressItemNotesFramework hints
Annotation-driven audit events to audit-servicelibs/audit, Postgres audit.audit_events, docs/architecture-guides/audit-service.mdSupports monitoring and audit objectives commonly associated with SOC 2 CC7.x and HIPAA audit controls when in scope
🟠EventBridge dispatch pathPlaceholder or future wiring; HTTP to audit-service is the current pathCan support centralized routing patterns when completed
Immutable central audit store (for example S3 Object Lock, dedicated security account)Architecture discusses future EventBridge pipeline; not fully automated hereOperator-owned control for many audit expectations
AWS CloudTrail organization trailAccount-level logging is not defined in CDK in this repositoryCommon expectation for AWS API audit evidence
🟠PII-safe logging disciplineGuides mention masking; logging.properties sets categories; operators need log review and DLP controlsSupports GDPR Articles 5 and 32 discussions when operated appropriately

Observability

ProgressItemNotesFramework hints
OpenTelemetry in Quarkusotel.properties, ADR-0007Supports traceability objectives
🟠JSON logging strategy for CloudWatchADR-0007; local defaults exist; Fluent Bit or agent wiring is deploy-timeSupports operational monitoring objectives when operator wiring is complete
🟠Metrics and dashboardsMetrics libraries and Grafana/Prometheus assets exist for development use; full AWS monitoring story is operator-ownedSupports monitoring objectives when operator alerting and runbooks exist

Change management and secure engineering

ProgressItemNotesFramework hints
CI build and test on push or PR.github/workflows/02-build-test.ymlSupports change management objectives commonly associated with SOC 2 CC8.x
Static analysis workflow.github/workflows/50-static-analysis.ymlSupports SOC 2 CC8.x objectives
Secret scanning action.github/actions/secret-scanSupports SOC 2 CC8.x objectives
CDK Nag for IaC checksSuppressions exist where documented; operators should reviewSupports IaC governance patterns
🟠Dependency update automation and code scanningrenovate.json exists for dependency updates; Dependabot and CodeQL workflows are not configured in .github at time of writingOperator-owned supply chain posture decisions
Signed commits on doc mirrorMirror workflow uses GPG import for rewritten history; separate from application runtimeGovernance signal, not runtime control

Data subject rights and retention (GDPR-forward)

ProgressItemNotesFramework hints
🟠User deletion hooks in auth layerCognito deleteUser used from auth flows; downstream data (RDS, DynamoDB, S3) requires operator processes or product completionSupports GDPR Article 17 procedures when operator workflows exist
Export of personal data per userNo single documented export API covering all storesSupports GDPR Articles 15 and 20 procedures when implemented
🟠Configurable legal retention policies per tenantCDK removal policies and RDS backup retention are stage-aware; not a full legal hold capabilityRequires operator retention policy and legal review
Notification unsubscribe and token safetyADR-0019; opaque tokens; no PII in URLsSupports consent and token safety expectations

Messaging and notifications

ProgressItemNotesFramework hints
Notification service with template engine and rate limitingADRs 0015-0018, services/notification-serviceSupports abuse prevention objectives
SQS as primary internal transportADR-0008 keeps synchronous REST for now; async-ready boundaries existOperator reliability requirements drive choice

Multi-account and org-wide security services

ProgressItemNotesFramework hints
AWS Organizations layout (security OU, log archive, separation)Not generated by this CDK app; optional recommendation for operators using enterprise landing zones (for example Superwerker or equivalent)Common expectation in larger deployments
AWS Config, Security Hub, GuardDutyNot provisioned hereOperator-owned posture controls

SOC 2 (Trust Services Criteria) quick map

Typical mappings auditors discuss. Criteria labels vary by report.

ThemeHow Forge helpsWhat the operator still proves
CC6 (logical and physical access)Cognito, JWT, service restrictions, private networking, WAFAccess reviews, administrator MFA, break-glass, staff IdP, workforce training
CC7 (system operations)Health checks, observability hooks, audit event libraryIncident response, alerting on AWS and application logs, backup restore tests
CC8 (change management)GitHub Actions, IaC, testsProduction approvals, segregation of duties, release records, change reviews

GDPR-oriented notes

  • Controller vs processor: Operators are typically controllers for their users' data. Forge is a tool they operate. Legal roles depend on contracts and facts, not this file.
  • Technical measures: Encryption in transit (TLS termination at ALB), encryption at rest on RDS, secrets handling, and audit hooks support GDPR Article 32 security-of-processing discussions when operators complete logging, monitoring, and incident practices.
  • Data subject rights: Operators implement procedures (and possibly product features) for access, rectification, erasure, and portability across all stores, including Cognito, RDS, DynamoDB, and S3.

HIPAA-oriented notes (high level)

HIPAA compliance depends on a BAA, scoped systems, and operational safeguards. Forge can support technical safeguards commonly expected in HIPAA-aligned deployments (access control, audit records, encryption, transmission security) when deployed and operated appropriately, but:

  • No BAA is offered by this document.
  • PHI must be classified; operators close gaps (for example immutable centralized audit storage, complete monitoring, vendor agreements with subprocessors such as AWS).

Related documentation

  • docs/architecture-guides/infrastructure.md - AWS layout, stacks, security posture overview.
  • docs/architecture-guides/audit-service.md - Audit pipeline and PII guidance for emitters.
  • docs/architecture-guides/user-authentication.md, docs/architecture-guides/service-authentication.md - Auth flows.
  • ADRs under docs/architecture-decisions/ - Especially 0004 (Cognito), 0005 (STS), 0007 (observability), 0008 (REST vs SQS), 0011 (JWT), 0019 (notification tokens), 0020 (VPC), 0021 (removal policies), 0024 (internal TLS and sensitivity).