Skip to content

Commit fcce9e4

Browse files
committed
feat: BOPS walkthrough pages, screenshots, and CloudFormation password output
- Walkthrough: 4-step guide (login, browse applications, review detail, applicants portal) - Complete page with takeaways, production readiness, ODP links - 14 Playwright screenshots (CloudFormation, BOPS back-office, applicants portal, AWS Console) - walkthroughs.yaml, scenarios.yaml, exploration YAML, screenshots YAML - CloudFormation template: Lambda custom resource for unique password per deployment shown in plain text in stack outputs (replaces Secrets Manager console link) - Naming updated to "Back Office Planning System (BOPS)" throughout - Links to opendigitalplanning.org/back-office-planning-system-bops
1 parent 438e203 commit fcce9e4

27 files changed

Lines changed: 3944 additions & 49 deletions

cloudformation/scenarios/bops-planning/cdk/lib/bops-planning-stack.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ export class BopsPlanningStack extends cdk.Stack {
108108
},
109109
});
110110

111+
// NOTE: template.yaml has been manually edited to replace this with a Lambda-backed
112+
// custom resource (PasswordGeneratorFunction) that generates a random password and
113+
// returns it via Fn::GetAtt, so it can be displayed in CloudFormation outputs.
114+
// Secrets Manager dynamic references ({{resolve:...}}) don't work in outputs.
111115
const adminPasswordSecret = new secretsmanager.Secret(this, 'AdminPasswordSecret', {
112116
description: 'BOPS demo admin password',
113117
generateSecretString: {
@@ -196,8 +200,8 @@ export class BopsPlanningStack extends cdk.Stack {
196200
});
197201

198202
new cdk.CfnOutput(this, 'BOPSPassword', {
199-
description: 'BOPS admin password (retrieve from Secrets Manager)',
200-
value: `https://console.aws.amazon.com/secretsmanager/secret?name=${adminPasswordSecret.secretName}&region=${cdk.Aws.REGION}`,
203+
description: 'BOPS admin password',
204+
value: adminPasswordSecret.secretValueFromJson('ADMIN_PASSWORD').unsafeUnwrap(),
201205
});
202206

203207
new cdk.CfnOutput(this, 'ApplicantsPortalUrl', {

0 commit comments

Comments
 (0)