Updated templates with generator correction

main
Tom Peltonen 2026-03-09 22:36:24 +11:00
parent c9b41df43f
commit bdfc5f3a2f
9 changed files with 658 additions and 616 deletions

View File

@ -2,6 +2,6 @@
design: design:
default_template: ./solution-impact.md.hbs default_template: ./solution-impact.md.hbs
specification_folder: ./specs specification_folder: ./specs
specification_regex: (?i)^s.*\.yaml specification_regex: (?i).*\.yaml
output_file: todo-solution02.md output_file: todo-solution02.md
output_format: md output_format: md

View File

@ -4,9 +4,10 @@
## Solution ## Solution
Name: {{get (get data "solution") "name"}} {{#with (get data "solution")}}
Name: {{name}}
Problem Statement: {{get (get data "solution") "problem_statement"}} Problem Statement: {{problem_statement}}
{{/with}}
## Project ## Project
@ -16,7 +17,6 @@ Problem Statement: {{get (get data "solution") "problem_statement"}}
- Guide: {{guide}} - Guide: {{guide}}
{{/each}} {{/each}}
## Applications ## Applications
| Name | Type | Framework | | Name | Type | Framework |

View File

@ -14,7 +14,7 @@ This document provides a high-level solution design
for **{{get (get (get business_requirements 0) "data") "name"}}**. for **{{get (get (get business_requirements 0) "data") "name"}}**.
It consolidates specifications across business requirements, security, APIs, databases, and deployment configurations. It consolidates specifications across business requirements, security, APIs, databases, and deployment configurations.
{{overviewDiagram}} {{overviewDiagram "DIAGRAM"}}
--- ---
@ -183,7 +183,7 @@ It consolidates specifications across business requirements, security, APIs, dat
{{/each}} {{/each}}
{{dbDiagram}} {{dbDiagram "SAMPLE"}}
{{else}} {{else}}
*No database specifications found.* *No database specifications found.*

View File

@ -3,12 +3,11 @@
## Solution ## Solution
Name: {{get (get data "solution") "name"}} {{#with (get data "solution") }}
Name: {{name}}
Problem Statement: {{get (get data "solution") "problem_statement"}} Problem Statement: {{problem_statement}}
Solution Id: {{identifier}}
Solution Id: {{get (get data "solution") "identifier"}} {{/with}}
Program Id: {{get (get data "program") "identifier"}} Program Id: {{get (get data "program") "identifier"}}
## Project ## Project
@ -42,20 +41,24 @@ The impact of the solution is rated as follows for each domain
## Program ## Program
The **{{get (get data "program") "name"}}** program details are {{#with (get data "program") }}
The **{{name}}** program details are:
* Budget: {{get (get data "program") "budget"}} - Budget: {{budget}}
* Identifier: {{get (get data "program") "identifier"}} - Identifier: {{identifier}}
* Sponsor: {{get (get data "program") "sponsor"}} - Sponsor: {{get (get data "program") "sponsor"}}
* Domain: {{get (get data "program") "domain"}} - Domain: {{get (get data "program") "domain"}}
* Business case: {{get (get data "program") "guide"}} - Business case: {{get (get data "program") "guide"}}
| Phase | Timeframe | Commentary | | Phase | Timeframe | Commentary |
|-------|-----------|------------| |-------|-----------|------------|
{{#each (get (get data "program") "phases")}} {{#each phases}}
| {{name}} | {{timeframe}} | {{comment}} | | {{name}} | {{timeframe}} | {{comment}} |
{{/each}} {{/each}}
{{mdDiagram "overview_diagram.md" name}}
{{/with}}
--- ---
## Stakeholders ## Stakeholders

View File

@ -0,0 +1,22 @@
<!-- OVERVIEW DIAGRAM PLACEHOLDER: Beef -->
<!-- Replace this section with your system architecture diagram -->
```mermaid
graph TB
subgraph "System Overview"
Client[Client Applications]
API[API Gateway]
Services[Microservices]
DB[(Database)]
Queue[Message Queue]
end
Client -->API
API --> Services
Services --> DB
Services --> Queue
%% TODO: Replace with actual system components for Beef
```
<!-- END OVERVIEW DIAGRAM PLACEHOLDER -->

View File

@ -1,562 +0,0 @@
# Test Documentation Platform - Solution Design Document
## Table of Contents
- [Test Documentation Platform - Solution Design Document ](#test-documentation-platform-solution-design-document)
- [Executive Summary ](#executive-summary)
- [1. Business Requirements ](#1-business-requirements)
- [Test Documentation Platform ](#test-documentation-platform)
- [Requirements ](#requirements)
- [Features ](#features)
- [User Management ](#user-management)
- [Product Management ](#product-management)
- [Order Management ](#order-management)
- [2. Non-Functional Requirements ](#2-non-functional-requirements)
- [NFR Summary ](#nfr-summary)
- [3. Security Architecture ](#3-security-architecture)
- [Encryption ](#encryption)
- [Compliance ](#compliance)
- [Threat Model ](#threat-model)
- [4. Authentication & Authorization ](#4-authentication-authorization)
- [Authentication ](#authentication)
- [Methods ](#methods)
- [Session Configuration ](#session-configuration)
- [Authorization ](#authorization)
- [Model: RBAC ](#model-rbac)
- [Roles ](#roles)
- [5. Database Design ](#5-database-design)
- [Database: postgresql ](#database-postgresql)
- [Schemas ](#schemas)
- [Schema: users ](#schema-users)
- [Schema: products ](#schema-products)
- [Replication & Backup ](#replication-backup)
- [6. API Specifications ](#6-api-specifications)
- [Published APIs ](#published-apis)
- [Products API (v1) ](#products-api-v1)
- [Orders API (v1) ](#orders-api-v1)
- [Dynamic navigation () ](#dynamic-navigation)
- [Consumed APIs (External) ](#consumed-apis-external)
- [**Payment Gateway** (Stripe): `https://api{environment}.stripe.com/v1` ](#payment-gateway-stripe-httpsapienvironmentstripecomv1)
- [**Email Service** (SendGrid): `https://api{environment}.sendgrid.com/v2` ](#email-service-sendgrid-httpsapienvironmentsendgridcomv2)
- [7. Message Queues (OpenSync) ](#7-message-queues-opensync)
- [Broker: rabbitmq (1.0) ](#broker-rabbitmq-10)
- [Published Queues ](#published-queues)
- [Consumed Queues ](#consumed-queues)
- [Dead Letter Queue ](#dead-letter-queue)
- [8. Observability ](#8-observability)
- [Telemetry ](#telemetry)
- [Metrics ](#metrics)
- [Custom Metrics ](#custom-metrics)
- [Distributed Tracing ](#distributed-tracing)
- [Analytics ](#analytics)
- [Events Tracked ](#events-tracked)
- [Logging ](#logging)
- [Log Destinations ](#log-destinations)
- [Retention Policy ](#retention-policy)
- [9. Deployment Architecture ](#9-deployment-architecture)
- [Container Configuration ](#container-configuration)
- [Kubernetes Resources ](#kubernetes-resources)
- [Deployments ](#deployments)
- [api-server ](#api-server)
- [Auto-Scaling ](#auto-scaling)
- [10. Service Level Agreements ](#10-service-level-agreements)
- [SLA ](#sla)
- [Service Level Objectives ](#service-level-objectives)
- [Error Budget ](#error-budget)
- [Appendix ](#appendix)
- [A. Specification Files Summary ](#a-specification-files-summary)
- [B. Document History ](#b-document-history)
---
&lt;!-- TOC_PLACEHOLDER --&gt;
**Generated:** 2026-03-08
**Version:** 1.0
**Status:** Draft
---
# Executive Summary
This document provides a high-level solution design for
the **Test Documentation Platform**
platform. It consolidates
specifications across business requirements, security, APIs, databases, and deployment configurations.
<!-- OVERVIEW DIAGRAM PLACEHOLDER -->
<!-- Replace this section with your system architecture diagram -->
```mermaid
graph TB
subgraph "System Overview"
Client[Client Applications]
API[API Gateway]
Services[Microservices]
DB[(Database)]
Queue[Message Queue]
end
Client -->API
API --> Services
Services --> DB
Services --> Queue
%% TODO: Replace with actual system components
```
<!-- END OVERVIEW DIAGRAM PLACEHOLDER -->
---
# 1. Business Requirements
## Test Documentation Platform
**Description:** Documentaion tool based on digital, structured specifications
### Requirements
- **BR-001**: User Registration
- Users must be able to create accounts with email verification
- Priority: high
- **BR-002**: Product Catalog
- Display products with search and filtering capabilities
- Priority: high
- **BR-003**: Shopping Cart
- Users can add/remove items and proceed to checkout
- Priority: high
### Features
#### User Management
- Registration
- Login
- Profile management
- Password reset
#### Product Management
- Product listing
- Product details
- Reviews and ratings
- Inventory tracking
#### Order Management
- Cart management
- Checkout flow
- Order tracking
- Order history
---
# 2. Non-Functional Requirements
### NFR Summary
| ID | Category | Title | Target |
|----|----------|-------|--------|
| NFR-001 | performance | Response Time | &lt; 200ms |
| NFR-002 | scalability | Concurrent Users | &gt;= 10000 |
| NFR-003 | availability | Uptime SLA | &gt;= 99.9% |
| NFR-004 | security | Data Encryption | |
| NFR-005 | reliability | Data Durability | |
---
# 3. Security Architecture
## Encryption
- **At Rest:** map[algorithm:AES-256-GCM key_management:AWS KMS]
- **In Transit:** map[certificate_authority:Let&apos;s Encrypt protocol:TLS 1.3]
## Compliance
- **GDPR** (EU)
- **PCI-DSS** ()
## Threat Model
| Threat | Severity | Mitigation |
|--------|----------|------------|
| SQL Injection | high | Parameterized queries |
| XSS | high | Output encoding, CSP headers |
| CSRF | medium | CSRF tokens |
---
# 4. Authentication & Authorization
## Authentication
### Methods
- **email_password**: Enabled
- **oauth2**: Enabled
- **mfa**: Enabled
### Session Configuration
- Token Type: jwt
- Access Token Expiry: 15m
- Refresh Token Expiry: 7d
## Authorization
### Model: RBAC
### Roles
| Role | Description | Permissions |
|------|-------------|-------------|
| admin | Full system access | * |
| seller | Manage own products and orders | products:create, products:read, products:update, products:delete:own, orders:read:own, analytics:read:own |
| customer | Browse and purchase products | products:read, cart:*, orders:create, orders:read:own, profile:*:own |
| guest | Browse only | products:read |
<!-- SEQUENCE DIAGRAM PLACEHOLDER: Authentication Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for Authentication Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 5. Database Design
## Database: postgresql
- **Engine:** PostgreSQL 15
- **Version:** 1.0
### Schemas
#### Schema: users
**Table: users**
| Column | Type | Constraints |
|--------|------|-------------|
| id | uuid | PK |
| email | varchar(255) | UNIQUENOT NULL |
| password_hash | varchar(255) | NOT NULL |
| created_at | timestamp | |
#### Schema: products
**Table: products**
| Column | Type | Constraints |
|--------|------|-------------|
| id | uuid | PK |
| seller_id | uuid | FK: users.id |
| name | varchar(255) | |
| price | decimal(10,2) | |
| status | varchar(50) | |
### Replication & Backup
- **Replication Type:** streaming
- **Replicas:** 2
- **Backup Frequency:** daily
- **Retention:** 30 days
<!-- DATABASE DIAGRAM PLACEHOLDER -->
```mermaid
erDiagram
ENTITY1 {
string id PK
string name
datetime created_at
}
ENTITY2 {
string id PK
string entity1_id FK
string data
}
ENTITY1 ||--o{ ENTITY2 : has
%% TODO: Replace with actual database entities
```
<!-- END DATABASE DIAGRAM PLACEHOLDER -->
---
# 6. API Specifications
## Published APIs
### Products API (v1)
**Base Path:** `/api/v1/products`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| GET | / | List all products | Yes | modify | No |
| GET | /{id} | Get product by ID | Yes | no change | No |
| POST | / | Create new product | Yes | config | Yes |
### Orders API (v1)
**Base Path:** `/api/v1/orders`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | / | Create new order | No | no change | Yes |
| GET | /{id} | Get order by ID | Yes | no change | Yes |
### Dynamic navigation ()
**Base Path:** `/api/dyna_menu`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
## Consumed APIs (External)
### **Payment Gateway** (Stripe): `https://api{environment}.stripe.com/v1`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | /v1/payment_intents | Create payment intent | No | | No |
### **Email Service** (SendGrid): `https://api{environment}.sendgrid.com/v2`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | /v3/mail/send | Send transactional email | No | | No |
<!-- SEQUENCE DIAGRAM PLACEHOLDER: API Request Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for API Request Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 7. Message Queues (OpenSync)
## Broker: rabbitmq (1.0)
### Published Queues
| Queue | Exchange | Routing Key | Description |
|-------|----------|-------------|-------------|
| order.created | orders | order.created | Emitted when a new order is created |
| payment.completed | payments | payment.completed | Emitted when payment is confirmed |
### Consumed Queues
| Queue | Exchange | Handler | Description |
|-------|----------|---------|-------------|
| inventory.updated | inventory | InventoryHandler | Consumed to update product availability |
| notification.send | notifications | NotificationHandler | Consumed to send notifications |
### Dead Letter Queue
- **Enabled:** true
- **Max Retries:** 3
<!-- SEQUENCE DIAGRAM PLACEHOLDER: Message Queue Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for Message Queue Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 8. Observability
## Telemetry
### Metrics
- **Provider:** prometheus
- **Endpoint:** /metrics
#### Custom Metrics
- `http_requests_total` (counter): Total HTTP requests
- `order_processing_duration` (histogram): Order processing time in seconds
- `active_sessions` (gauge): Current number of active user sessions
### Distributed Tracing
- **Provider:** jaeger
- **Sampling Rate:** 0.1
## Analytics
### Events Tracked
- **page_viewed**: page_name, referrer, session_id
- **product_viewed**: product_id, product_name, category, price
- **add_to_cart**: product_id, quantity, cart_value
- **purchase_completed**: order_id, total, items_count, payment_method
## Logging
### Log Destinations
- **stdout** (console): Level = info
- **elasticsearch** (elasticsearch): Level = debug
- **cloudwatch** (aws_cloudwatch): Level = warn
### Retention Policy
- Hot Storage: 7 days
- Warm Storage: 30 days
- Cold Storage: 90 days
---
# 9. Deployment Architecture
## Container Configuration
- **Base Image:** node:20-alpine
## Kubernetes Resources
### Deployments
#### api-server
- **Replicas:** 3
- **Image:** app/api:latest
- **CPU Request/Limit:** 250m / 1000m
- **Memory Request/Limit:** 512Mi / 1Gi
### Auto-Scaling
- **Enabled:** true
- **Min/Max Replicas:** 3 - 10
---
# 10. Service Level Agreements
## SLA
- **Availability Target:** 99.9%
## Service Level Objectives
| Objective | Target | Window |
|-----------|--------|--------|
| API Availability | 99.95% | 30 days |
| API Latency (p99) | 500ms | 1 hour |
| Error Rate | 0.1% | 1 hour |
| Throughput | 10000 rps | 1 minute |
## Error Budget
- **Monthly Budget:** 43.2 minutes
- **Alert Threshold:** 50%
---
# Appendix
## A. Specification Files Summary
| File | Type |
|------|------|
| analytics.yaml | analytics |
| authentication.yaml | authentication |
| authorization.yaml | authorization |
| business_requirements.yaml | business_requirements |
| database.yaml | database |
| deployment.yaml | deployment |
| logging.yaml | logging |
| nfr.yaml | non_functional_requirements |
| opensync.yaml | opensync |
| security.yaml | security |
| service_level.yaml | service_level |
| service_openapi.yaml | openapi |
| telemetry.yaml | telemetry |
## B. Document History
| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 1.0 | 2026-03-08 | qaskx-cli | Initial generation |
---
*This document was automatically generated by **qaskx-cli** v0.0.12 on 2026-03-08T11:26:49+11:00*

View File

@ -0,0 +1,43 @@
# Sample solution - Solution Design Document
## Table of Contents
- [Sample solution - Solution Design Document ](#sample-solution-solution-design-document)
- [Solution ](#solution)
- [Project ](#project)
- [Applications ](#applications)
- [Stakeholders ](#stakeholders)
---
## Solution
Name: Phase 2 Useful app
Problem Statement: Objective is to make it simple
## Project
- Name: Lamb
- Budget: $800k
- Guide: https://docs.qaskx.one/
## Applications
| Name | Type | Framework |
|------|------|-----------|
| Dashboard | single page application | react |
| User settings | single page application | react |
| Login and credentials | single page application | react |
| Authentication service | OpenAPI | |
| User settings service | OpenAPI | |
## Stakeholders
| Name | Title | Role |
|------|-------|------|
| tba | Product Owner | Decision maker |
| tba | Development Team | Implementation |
| tba | End Users | Consumers |

View File

@ -1,44 +1,560 @@
# Sample solution - Solution Design Document # Test Documentation Platform - Solution Design Document
## Table of Contents ## Table of Contents
- [Sample solution - Solution Design Document ](#sample-solution-solution-design-document) - [Test Documentation Platform - Solution Design Document ](#test-documentation-platform-solution-design-document)
- [Solution ](#solution) - [Executive Summary ](#executive-summary)
- [Project ](#project) - [1. Business Requirements ](#1-business-requirements)
- [Applications ](#applications) - [Test Documentation Platform ](#test-documentation-platform)
- [Requirements ](#requirements)
- [Features ](#features)
- [User Management ](#user-management)
- [Product Management ](#product-management)
- [Order Management ](#order-management)
- [Stakeholders ](#stakeholders) - [Stakeholders ](#stakeholders)
- [2. Non-Functional Requirements ](#2-non-functional-requirements)
- [NFR Summary ](#nfr-summary)
- [3. Security Architecture ](#3-security-architecture)
- [Encryption ](#encryption)
- [Compliance ](#compliance)
- [Threat Model ](#threat-model)
- [4. Authentication & Authorization ](#4-authentication-authorization)
- [Authentication ](#authentication)
- [Methods ](#methods)
- [Session Configuration ](#session-configuration)
- [Authorization ](#authorization)
- [Model: RBAC ](#model-rbac)
- [Roles ](#roles)
- [5. Database Design ](#5-database-design)
- [Database: postgresql ](#database-postgresql)
- [Schemas ](#schemas)
- [Schema: users ](#schema-users)
- [Schema: products ](#schema-products)
- [Replication & Backup ](#replication-backup)
- [6. API Specifications ](#6-api-specifications)
- [Published APIs ](#published-apis)
- [Products API (v1) ](#products-api-v1)
- [Orders API (v1) ](#orders-api-v1)
- [Dynamic navigation () ](#dynamic-navigation)
- [Consumed APIs (External) ](#consumed-apis-external)
- [**Payment Gateway** (Stripe): `https://api{environment}.stripe.com/v1` ](#payment-gateway-stripe-httpsapienvironmentstripecomv1)
- [**Email Service** (SendGrid): `https://api{environment}.sendgrid.com/v2` ](#email-service-sendgrid-httpsapienvironmentsendgridcomv2)
- [7. Message Queues (OpenSync) ](#7-message-queues-opensync)
- [Broker: rabbitmq (1.0) ](#broker-rabbitmq-10)
- [Published Queues ](#published-queues)
- [Consumed Queues ](#consumed-queues)
- [Dead Letter Queue ](#dead-letter-queue)
- [8. Observability ](#8-observability)
- [Telemetry ](#telemetry)
- [Metrics ](#metrics)
- [Custom Metrics ](#custom-metrics)
- [Distributed Tracing ](#distributed-tracing)
- [Analytics ](#analytics)
- [Events Tracked ](#events-tracked)
- [Logging ](#logging)
- [Log Destinations ](#log-destinations)
- [Retention Policy ](#retention-policy)
- [9. Deployment Architecture ](#9-deployment-architecture)
- [Container Configuration ](#container-configuration)
- [Kubernetes Resources ](#kubernetes-resources)
- [Deployments ](#deployments)
- [api-server ](#api-server)
- [Auto-Scaling ](#auto-scaling)
- [10. Service Level Agreements ](#10-service-level-agreements)
- [SLA ](#sla)
- [Service Level Objectives ](#service-level-objectives)
- [Error Budget ](#error-budget)
- [Appendix ](#appendix)
- [A. Specification Files Summary ](#a-specification-files-summary)
- [B. Document History ](#b-document-history)
--- ---
&lt;!-- TOC_PLACEHOLDER --&gt;
## Solution **Generated:** 2026-03-09
**Version:** 1.0
**Status:** Draft
Name: Phase 2 Useful app ---
Problem Statement: Objective is to make it simple # Executive Summary
## Project This document provides a high-level solution design
for **Test Documentation Platform**.
It consolidates specifications across business requirements, security, APIs, databases, and deployment configurations.
- Name: Lamb <!-- OVERVIEW DIAGRAM PLACEHOLDER: DIAGRAM -->
- Budget: $800k <!-- Replace this section with your system architecture diagram -->
- Guide: https://docs.qaskx.one/
```mermaid
graph TB
subgraph "System Overview"
Client[Client Applications]
API[API Gateway]
Services[Microservices]
DB[(Database)]
Queue[Message Queue]
end
## Applications Client -->API
API --> Services
Services --> DB
Services --> Queue
| Name | Type | Framework | %% TODO: Replace with actual system components for DIAGRAM
|------|------|-----------| ```
| Dashboard | single page application | react |
| User settings | single page application | react |
| Login and credentials | single page application | react |
| Authentication service | OpenAPI | |
| User settings service | OpenAPI | |
## Stakeholders <!-- END OVERVIEW DIAGRAM PLACEHOLDER -->
---
# 1. Business Requirements
## Test Documentation Platform
**Description:** Documentaion tool based on digital, structured specifications
### Requirements
- **BR-001**: User Registration
- Users must be able to create accounts with email verification
- Priority: high
- **BR-002**: Product Catalog
- Display products with search and filtering capabilities
- Priority: high
- **BR-003**: Shopping Cart
- Users can add/remove items and proceed to checkout
- Priority: high
### Features
#### User Management
- Registration
- Login
- Profile management
- Password reset
#### Product Management
- Product listing
- Product details
- Reviews and ratings
- Inventory tracking
#### Order Management
- Cart management
- Checkout flow
- Order tracking
- Order history
### Stakeholders
| Name | Title | Role | | Name | Title | Role |
|------|-------|------| |------|-------|------|
| tba | Product Owner | Decision maker | | tba | Product Owner | Decision maker |
| tba | Development Team | Implementation | | tba | Development Team | Implementation |
| tba | End Users | Consumers | | tba | End Users | Consumers |
---
# 2. Non-Functional Requirements
### NFR Summary
| ID | Category | Title | Target |
|----|----------|-------|--------|
| NFR-001 | performance | Response Time | &lt; 200ms |
| NFR-002 | scalability | Concurrent Users | &gt;= 10000 |
| NFR-003 | availability | Uptime SLA | &gt;= 99.9% |
| NFR-004 | security | Data Encryption | |
| NFR-005 | reliability | Data Durability | |
---
# 3. Security Architecture
## Encryption
- **At Rest:** map[algorithm:AES-256-GCM key_management:AWS KMS]
- **In Transit:** map[certificate_authority:Let&apos;s Encrypt protocol:TLS 1.3]
## Compliance
- **GDPR** (EU)
- **PCI-DSS** ()
## Threat Model
| Threat | Severity | Mitigation |
|--------|----------|------------|
| SQL Injection | high | Parameterized queries |
| XSS | high | Output encoding, CSP headers |
| CSRF | medium | CSRF tokens |
---
# 4. Authentication & Authorization
## Authentication
### Methods
- **email_password**: Enabled
- **oauth2**: Enabled
- **mfa**: Enabled
### Session Configuration
- Token Type: jwt
- Access Token Expiry: 15m
- Refresh Token Expiry: 7d
## Authorization
### Model: RBAC
### Roles
| Role | Description | Permissions |
|------|-------------|-------------|
| admin | Full system access | * |
| seller | Manage own products and orders | products:create, products:read, products:update, products:delete:own, orders:read:own, analytics:read:own |
| customer | Browse and purchase products | products:read, cart:*, orders:create, orders:read:own, profile:*:own |
| guest | Browse only | products:read |
<!-- SEQUENCE DIAGRAM PLACEHOLDER: Authentication Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for Authentication Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 5. Database Design
## Database: postgresql
- **Engine:** PostgreSQL 15
- **Version:** 1.0
### Schemas
#### Schema: users
**Table: users**
| Column | Type | Constraints |
|--------|------|-------------|
| id | uuid | PK |
| email | varchar(255) | UNIQUENOT NULL |
| password_hash | varchar(255) | NOT NULL |
| created_at | timestamp | |
#### Schema: products
**Table: products**
| Column | Type | Constraints |
|--------|------|-------------|
| id | uuid | PK |
| seller_id | uuid | FK: users.id |
| name | varchar(255) | |
| price | decimal(10,2) | |
| status | varchar(50) | |
### Replication & Backup
- **Replication Type:** streaming
- **Replicas:** 2
- **Backup Frequency:** daily
- **Retention:** 30 days
<!-- DATABASE DIAGRAM PLACEHOLDER: SAMPLE -->
```mermaid
erDiagram
ENTITY1 {
string id PK
string name
datetime created_at
}
ENTITY2 {
string id PK
string entity1_id FK
string data
}
ENTITY1 ||--o{ ENTITY2 : has
%% TODO: Replace with actual database entities for SAMPLE
```
<!-- END DATABASE DIAGRAM PLACEHOLDER -->
---
# 6. API Specifications
## Published APIs
### Products API (v1)
**Base Path:** `/api/v1/products`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| GET | / | List all products | Yes | modify | No |
| GET | /{id} | Get product by ID | Yes | no change | No |
| POST | / | Create new product | Yes | config | Yes |
### Orders API (v1)
**Base Path:** `/api/v1/orders`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | / | Create new order | No | no change | Yes |
| GET | /{id} | Get order by ID | Yes | no change | Yes |
### Dynamic navigation ()
**Base Path:** `/api/dyna_menu`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
## Consumed APIs (External)
### **Payment Gateway** (Stripe): `https://api{environment}.stripe.com/v1`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | /v1/payment_intents | Create payment intent | No | | No |
### **Email Service** (SendGrid): `https://api{environment}.sendgrid.com/v2`
| Method | Path | Description | Used | Impact | Auth Required |
|--------|------|-------------|------|--------|---------------|
| POST | /v3/mail/send | Send transactional email | No | | No |
<!-- SEQUENCE DIAGRAM PLACEHOLDER: API Request Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for API Request Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 7. Message Queues (OpenSync)
## Broker: rabbitmq (1.0)
### Published Queues
| Queue | Exchange | Routing Key | Description |
|-------|----------|-------------|-------------|
| order.created | orders | order.created | Emitted when a new order is created |
| payment.completed | payments | payment.completed | Emitted when payment is confirmed |
### Consumed Queues
| Queue | Exchange | Handler | Description |
|-------|----------|---------|-------------|
| inventory.updated | inventory | InventoryHandler | Consumed to update product availability |
| notification.send | notifications | NotificationHandler | Consumed to send notifications |
### Dead Letter Queue
- **Enabled:** true
- **Max Retries:** 3
<!-- SEQUENCE DIAGRAM PLACEHOLDER: Message Queue Flow -->
<!-- Replace this section with your sequence diagram -->
```mermaid
sequenceDiagram
participant Client
participant API
participant Service
participant Database
Client->>API: Request
API->>Service: Process
Service->>Database: Query
Database-->>Service: Result
Service-->>API: Response
API-->>Client: Result
%% TODO: Replace with actual sequence for Message Queue Flow
```
<!-- END SEQUENCE DIAGRAM PLACEHOLDER -->
---
# 8. Observability
## Telemetry
### Metrics
- **Provider:** prometheus
- **Endpoint:** /metrics
#### Custom Metrics
- `http_requests_total` (counter): Total HTTP requests
- `order_processing_duration` (histogram): Order processing time in seconds
- `active_sessions` (gauge): Current number of active user sessions
### Distributed Tracing
- **Provider:** jaeger
- **Sampling Rate:** 0.1
## Analytics
### Events Tracked
- **page_viewed**: page_name, referrer, session_id
- **product_viewed**: product_id, product_name, category, price
- **add_to_cart**: product_id, quantity, cart_value
- **purchase_completed**: order_id, total, items_count, payment_method
## Logging
### Log Destinations
- **stdout** (console): Level = info
- **elasticsearch** (elasticsearch): Level = debug
- **cloudwatch** (aws_cloudwatch): Level = warn
### Retention Policy
- Hot Storage: 7 days
- Warm Storage: 30 days
- Cold Storage: 90 days
---
# 9. Deployment Architecture
## Container Configuration
- **Base Image:** node:20-alpine
## Kubernetes Resources
### Deployments
#### api-server
- **Replicas:** 3
- **Image:** app/api:latest
- **CPU Request/Limit:** 250m / 1000m
- **Memory Request/Limit:** 512Mi / 1Gi
### Auto-Scaling
- **Enabled:** true
- **Min/Max Replicas:** 3 - 10
---
# 10. Service Level Agreements
## SLA
- **Availability Target:** 99.9%
## Service Level Objectives
| Objective | Target | Window |
|-----------|--------|--------|
| API Availability | 99.95% | 30 days |
| API Latency (p99) | 500ms | 1 hour |
| Error Rate | 0.1% | 1 hour |
| Throughput | 10000 rps | 1 minute |
## Error Budget
- **Monthly Budget:** 43.2 minutes
- **Alert Threshold:** 50%
---
# Appendix
## A. Specification Files Summary
| File | Type |
|------|------|
| analytics.yaml | analytics |
| authentication.yaml | authentication |
| authorization.yaml | authorization |
| business_requirements.yaml | business_requirements |
| database.yaml | database |
| deployment.yaml | deployment |
| logging.yaml | logging |
| nfr.yaml | non_functional_requirements |
| opensync.yaml | opensync |
| security.yaml | security |
| service_level.yaml | service_level |
| service_openapi.yaml | openapi |
| solution.yaml | solution |
| telemetry.yaml | telemetry |
## B. Document History
| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 1.0 | 2026-03-09 | qaskx-cli | Initial generation |
---
*This document was automatically generated by **qaskx-cli** v0.0.12 on 2026-03-09T22:25:23+11:00*

View File

@ -16,11 +16,8 @@
## Solution ## Solution
Name: Phase 2 Useful app Name: Phase 2 Useful app
Problem Statement: Objective is to make it simple Problem Statement: Objective is to make it simple
Solution Id: SLN00E304 Solution Id: SLN00E304
Program Id: PGM240064 Program Id: PGM240064
## Project ## Project
@ -57,13 +54,13 @@ The impact of the solution is rated as follows for each domain
## Program ## Program
The **Beef** program details are The **Beef** program details are:
* Budget: $2 million - Budget: $2 million
* Identifier: PGM240064 - Identifier: PGM240064
* Sponsor: GM Customer service - Sponsor: GM Customer service
* Domain: Digital Customer - Domain: Digital Customer
* Business case: http://google.com.au - Business case: http://google.com.au
| Phase | Timeframe | Commentary | | Phase | Timeframe | Commentary |
|-------|-----------|------------| |-------|-----------|------------|
@ -71,6 +68,29 @@ The **Beef** program details are
| Native cloud | Q2 2024 | | | Native cloud | Q2 2024 | |
| Uplift user experience | Q4 2024 | | | Uplift user experience | Q4 2024 | |
<!-- OVERVIEW DIAGRAM PLACEHOLDER: Beef -->
<!-- Replace this section with your system architecture diagram -->
```mermaid
graph TB
subgraph "System Overview"
Client[Client Applications]
API[API Gateway]
Services[Microservices]
DB[(Database)]
Queue[Message Queue]
end
Client -->API
API --> Services
Services --> DB
Services --> Queue
%% TODO: Replace with actual system components for Beef
```
<!-- END OVERVIEW DIAGRAM PLACEHOLDER -->
--- ---
## Stakeholders ## Stakeholders