Adding templates
parent
683171b401
commit
60b082290a
|
|
@ -0,0 +1,35 @@
|
||||||
|
# {{get (get (get solution 0) "data") "name"}} - Solution Design Document
|
||||||
|
|
||||||
|
{{#each solution}}
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
{{#with (get data "solution")}}
|
||||||
|
Name: {{name}}
|
||||||
|
Problem Statement: {{problem_statement}}
|
||||||
|
{{/with}}
|
||||||
|
|
||||||
|
## Project
|
||||||
|
|
||||||
|
{{#each (get data "project")}}
|
||||||
|
- Name: {{name}}
|
||||||
|
- Budget: {{budget}}
|
||||||
|
- Guide: {{guide}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Applications
|
||||||
|
|
||||||
|
| Name | Type | Framework |
|
||||||
|
|------|------|-----------|
|
||||||
|
{{#each (get data "applications")}}
|
||||||
|
| {{name}} | {{type}} | {{framework}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Stakeholders
|
||||||
|
|
||||||
|
| Name | Title | Role |
|
||||||
|
|------|-------|------|
|
||||||
|
{{#each (get data "stakeholders")}}
|
||||||
|
| {{name}} | {{title}} | {{role}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
|
@ -0,0 +1,417 @@
|
||||||
|
# {{get (get (get business_requirements 0) "data") "name"}} - Solution Design Document
|
||||||
|
|
||||||
|
{{toc}}
|
||||||
|
|
||||||
|
**Generated:** {{generated_date}}
|
||||||
|
**Version:** 1.0
|
||||||
|
**Status:** Draft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Executive Summary
|
||||||
|
|
||||||
|
This document provides a high-level solution design
|
||||||
|
for **{{get (get (get business_requirements 0) "data") "name"}}**.
|
||||||
|
It consolidates specifications across business requirements, security, APIs, databases, and deployment configurations.
|
||||||
|
|
||||||
|
{{overviewDiagram "DIAGRAM"}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 1. Business Requirements
|
||||||
|
|
||||||
|
{{#if has_business_requirements}}
|
||||||
|
{{#each business_requirements}}
|
||||||
|
## {{get data "name"}}
|
||||||
|
|
||||||
|
**Description:** {{get data "description"}}
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
{{#each (get data "requirements")}}
|
||||||
|
- **{{id}}**: {{title}}
|
||||||
|
- {{description}}
|
||||||
|
- Priority: {{priority}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
{{#each (get data "features")}}
|
||||||
|
#### {{name}}
|
||||||
|
{{#each components}}
|
||||||
|
- {{this}}
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Stakeholders
|
||||||
|
|
||||||
|
| Name | Title | Role |
|
||||||
|
|------|-------|------|
|
||||||
|
{{#each (get data "stakeholders")}}
|
||||||
|
| {{name}} | {{title}} | {{role}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No business requirements specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2. Non-Functional Requirements
|
||||||
|
|
||||||
|
{{#if has_nfr}}
|
||||||
|
{{#each non_functional_requirements}}
|
||||||
|
|
||||||
|
### NFR Summary
|
||||||
|
|
||||||
|
| ID | Category | Title | Target |
|
||||||
|
|----|----------|-------|--------|
|
||||||
|
{{#each (get data "requirements")}}
|
||||||
|
| {{id}} | {{category}} | {{title}} | {{target}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No NFR specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 3. Security Architecture
|
||||||
|
|
||||||
|
{{#if has_security}}
|
||||||
|
{{#each security}}
|
||||||
|
|
||||||
|
## Encryption
|
||||||
|
|
||||||
|
- **At Rest:** {{get (get data "encryption") "at_rest"}}
|
||||||
|
- **In Transit:** {{get (get data "encryption") "in_transit"}}
|
||||||
|
|
||||||
|
## Compliance
|
||||||
|
|
||||||
|
{{#each (get (get data "compliance") "standards")}}
|
||||||
|
- **{{name}}** ({{#each regions}}{{this}}{{/each}})
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Threat Model
|
||||||
|
|
||||||
|
| Threat | Severity | Mitigation |
|
||||||
|
|--------|----------|------------|
|
||||||
|
{{#each (get (get data "threat_model") "threats")}}
|
||||||
|
| {{name}} | {{severity}} | {{mitigation}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No security specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 4. Authentication & Authorization
|
||||||
|
|
||||||
|
{{#if has_authentication}}
|
||||||
|
## Authentication
|
||||||
|
|
||||||
|
{{#each authentication}}
|
||||||
|
### Methods
|
||||||
|
|
||||||
|
{{#each (get data "methods")}}
|
||||||
|
- **{{type}}**: {{#if enabled}}Enabled{{else}}Disabled{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Session Configuration
|
||||||
|
|
||||||
|
- Token Type: {{get (get data "session") "type"}}
|
||||||
|
- Access Token Expiry: {{get (get data "session") "access_token_expiry"}}
|
||||||
|
- Refresh Token Expiry: {{get (get data "session") "refresh_token_expiry"}}
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if has_authorization}}
|
||||||
|
## Authorization
|
||||||
|
|
||||||
|
{{#each authorization}}
|
||||||
|
### Model: {{upper (get data "model")}}
|
||||||
|
|
||||||
|
### Roles
|
||||||
|
|
||||||
|
| Role | Description | Permissions |
|
||||||
|
|------|-------------|-------------|
|
||||||
|
{{#each (get data "roles")}}
|
||||||
|
| {{name}} | {{description}} | {{join permissions ", "}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{sequenceDiagram "Authentication Flow"}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 5. Database Design
|
||||||
|
|
||||||
|
{{#if has_database}}
|
||||||
|
{{#each database}}
|
||||||
|
|
||||||
|
## Database: {{get data "type"}}
|
||||||
|
|
||||||
|
- **Engine:** {{get data "engine"}}
|
||||||
|
- **Version:** {{get data "version"}}
|
||||||
|
|
||||||
|
### Schemas
|
||||||
|
|
||||||
|
{{#each (get data "schemas")}}
|
||||||
|
#### Schema: {{name}}
|
||||||
|
|
||||||
|
{{#each tables}}
|
||||||
|
**Table: {{name}}**
|
||||||
|
|
||||||
|
| Column | Type | Constraints |
|
||||||
|
|--------|------|-------------|
|
||||||
|
{{#each columns}}
|
||||||
|
| {{name}} | {{type}} | {{#if primary_key}}PK{{/if}}{{#if unique}}UNIQUE{{/if}}{{#if not_null}}NOT NULL{{/if}}{{#if foreign_key}}FK: {{foreign_key}}{{/if}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Replication & Backup
|
||||||
|
|
||||||
|
- **Replication Type:** {{get (get data "replication") "type"}}
|
||||||
|
- **Replicas:** {{get (get data "replication") "replicas"}}
|
||||||
|
- **Backup Frequency:** {{get (get data "backup") "frequency"}}
|
||||||
|
- **Retention:** {{get (get data "backup") "retention"}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{dbDiagram "SAMPLE"}}
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
*No database specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 6. API Specifications
|
||||||
|
|
||||||
|
{{#if has_openapi}}
|
||||||
|
{{#each openapi}}
|
||||||
|
|
||||||
|
## Published APIs
|
||||||
|
|
||||||
|
{{#each (get (get data "apis") "published")}}
|
||||||
|
### {{name}} ({{version}})
|
||||||
|
|
||||||
|
**Base Path:** `{{base_path}}`
|
||||||
|
|
||||||
|
| Method | Path | Description | Used | Impact | Auth Required |
|
||||||
|
|--------|------|-------------|------|--------|---------------|
|
||||||
|
{{#each endpoints}}
|
||||||
|
| {{method}} | {{path}} | {{description}} | {{#if used}}Yes{{else}}No{{/if}} | {{impact}} | {{#if auth_required}}Yes{{else}}No{{/if}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Consumed APIs (External)
|
||||||
|
|
||||||
|
{{#each (get (get data "apis") "consumed")}}
|
||||||
|
### **{{name}}** ({{provider}}): `{{base_url}}`
|
||||||
|
|
||||||
|
| Method | Path | Description | Used | Impact | Auth Required |
|
||||||
|
|--------|------|-------------|------|--------|---------------|
|
||||||
|
{{#each endpoints}}
|
||||||
|
| {{method}} | {{path}} | {{description}} | {{#if used}}Yes{{else}}No{{/if}} | {{impact}} | {{#if auth_required}}Yes{{else}}No{{/if}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{sequenceDiagram "API Request Flow"}}
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
*No API specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 7. Message Queues (OpenSync)
|
||||||
|
|
||||||
|
{{#if has_opensync}}
|
||||||
|
{{#each opensync}}
|
||||||
|
|
||||||
|
## Broker: {{get data "broker"}} ({{get data "version"}})
|
||||||
|
|
||||||
|
### Published Queues
|
||||||
|
|
||||||
|
| Queue | Exchange | Routing Key | Description |
|
||||||
|
|-------|----------|-------------|-------------|
|
||||||
|
{{#each (get (get data "queues") "published")}}
|
||||||
|
| {{name}} | {{exchange}} | {{routing_key}} | {{description}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Consumed Queues
|
||||||
|
|
||||||
|
| Queue | Exchange | Handler | Description |
|
||||||
|
|-------|----------|---------|-------------|
|
||||||
|
{{#each (get (get data "queues") "consumed")}}
|
||||||
|
| {{name}} | {{exchange}} | {{handler}} | {{description}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Dead Letter Queue
|
||||||
|
|
||||||
|
- **Enabled:** {{get (get data "dlq") "enabled"}}
|
||||||
|
- **Max Retries:** {{get (get data "dlq") "max_retries"}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{sequenceDiagram "Message Queue Flow"}}
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
*No message queue specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 8. Observability
|
||||||
|
|
||||||
|
## Telemetry
|
||||||
|
|
||||||
|
{{#if has_telemetry}}
|
||||||
|
{{#each telemetry}}
|
||||||
|
### Metrics
|
||||||
|
|
||||||
|
- **Provider:** {{get (get data "metrics") "provider"}}
|
||||||
|
- **Endpoint:** {{get (get data "metrics") "endpoint"}}
|
||||||
|
|
||||||
|
#### Custom Metrics
|
||||||
|
|
||||||
|
{{#each (get (get data "metrics") "custom_metrics")}}
|
||||||
|
- `{{name}}` ({{type}}): {{description}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Distributed Tracing
|
||||||
|
|
||||||
|
- **Provider:** {{get (get data "traces") "provider"}}
|
||||||
|
- **Sampling Rate:** {{get (get data "traces") "sampling_rate"}}
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No telemetry specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
## Analytics
|
||||||
|
|
||||||
|
{{#if has_analytics}}
|
||||||
|
{{#each analytics}}
|
||||||
|
### Events Tracked
|
||||||
|
|
||||||
|
{{#each (get (get data "tracking") "events")}}
|
||||||
|
- **{{name}}**: {{join properties ", "}}
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No analytics specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
## Logging
|
||||||
|
|
||||||
|
{{#if has_logging}}
|
||||||
|
{{#each logging}}
|
||||||
|
### Log Destinations
|
||||||
|
|
||||||
|
{{#each (get data "destinations")}}
|
||||||
|
- **{{name}}** ({{type}}): Level = {{level}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Retention Policy
|
||||||
|
|
||||||
|
- Hot Storage: {{get (get data "retention") "hot"}}
|
||||||
|
- Warm Storage: {{get (get data "retention") "warm"}}
|
||||||
|
- Cold Storage: {{get (get data "retention") "cold"}}
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No logging specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 9. Deployment Architecture
|
||||||
|
|
||||||
|
{{#if has_deployment}}
|
||||||
|
{{#each deployment}}
|
||||||
|
|
||||||
|
## Container Configuration
|
||||||
|
|
||||||
|
- **Base Image:** {{get (get data "docker") "base_image"}}
|
||||||
|
|
||||||
|
## Kubernetes Resources
|
||||||
|
|
||||||
|
### Deployments
|
||||||
|
|
||||||
|
{{#each (get (get data "kubernetes") "deployments")}}
|
||||||
|
#### {{name}}
|
||||||
|
|
||||||
|
- **Replicas:** {{replicas}}
|
||||||
|
- **Image:** {{image}}
|
||||||
|
- **CPU Request/Limit:** {{get (get resources "requests") "cpu"}} / {{get (get resources "limits") "cpu"}}
|
||||||
|
- **Memory Request/Limit:** {{get (get resources "requests") "memory"}} / {{get (get resources "limits") "memory"}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
### Auto-Scaling
|
||||||
|
|
||||||
|
- **Enabled:** {{get (get (get data "kubernetes") "autoscaling") "enabled"}}
|
||||||
|
- **Min/Max Replicas:** {{get (get (get data "kubernetes") "autoscaling") "min_replicas"}} - {{get (get (get data "kubernetes") "autoscaling") "max_replicas"}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No deployment specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 10. Service Level Agreements
|
||||||
|
|
||||||
|
{{#if has_service_level}}
|
||||||
|
{{#each service_level}}
|
||||||
|
|
||||||
|
## SLA
|
||||||
|
|
||||||
|
- **Availability Target:** {{get (get data "sla") "availability"}}
|
||||||
|
|
||||||
|
## Service Level Objectives
|
||||||
|
|
||||||
|
| Objective | Target | Window |
|
||||||
|
|-----------|--------|--------|
|
||||||
|
{{#each (get data "slo")}}
|
||||||
|
| {{name}} | {{target}} | {{window}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Error Budget
|
||||||
|
|
||||||
|
- **Monthly Budget:** {{get (get data "error_budget") "monthly_budget"}}
|
||||||
|
- **Alert Threshold:** {{get (get data "error_budget") "alerting_threshold"}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
*No service level specifications found.*
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Appendix
|
||||||
|
|
||||||
|
## A. Specification Files Summary
|
||||||
|
|
||||||
|
| File | Type |
|
||||||
|
|------|------|
|
||||||
|
{{#each all_files}}
|
||||||
|
| {{name}} | {{type}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## B. Document History
|
||||||
|
|
||||||
|
| Version | Date | Author | Changes |
|
||||||
|
|---------|------|--------|---------|
|
||||||
|
| 1.0 | {{generated_date}} | {{generator_product}} | Initial generation |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*This document was automatically generated by **{{generator_product}}** v{{generator_version}} on {{generated_at}}*
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
# {{get (get (get solution 0) "data") "name"}} - Solution Impact Document (SID)
|
||||||
|
{{#each solution}}
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
{{#with (get data "solution") }}
|
||||||
|
Name: {{name}}
|
||||||
|
Problem Statement: {{problem_statement}}
|
||||||
|
Solution Id: {{identifier}}
|
||||||
|
{{/with}}
|
||||||
|
Program Id: {{get (get data "program") "identifier"}}
|
||||||
|
|
||||||
|
**This impact solution design is still in draft**
|
||||||
|
|
||||||
|
## Project
|
||||||
|
|
||||||
|
{{#each (get data "project")}}
|
||||||
|
- Name: {{name}}
|
||||||
|
- Identifier: {{identifier}}
|
||||||
|
- Budget: {{budget}}
|
||||||
|
- Guide: {{guide}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Applications
|
||||||
|
|
||||||
|
| Name | ID | Type | Framework |
|
||||||
|
|------|----|------|-----------|
|
||||||
|
{{#each (get data "applications")}}
|
||||||
|
| {{name}} | {{identifier}} | {{type}} | {{framework}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Impact
|
||||||
|
|
||||||
|
The impact of the solution is rated as follows for each domain
|
||||||
|
|
||||||
|
| Domain | Impact | Commentary | Additional |
|
||||||
|
|--------|--------|------------|------------|
|
||||||
|
{{#each (get data "impacts")}}
|
||||||
|
| {{domain}} | {{impact}} | {{comment}} | {{additional_info}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Program
|
||||||
|
|
||||||
|
{{#with (get data "program") }}
|
||||||
|
The **{{name}}** program details are:
|
||||||
|
|
||||||
|
- Budget: {{budget}}
|
||||||
|
- Identifier: {{identifier}}
|
||||||
|
- Sponsor: {{get (get data "program") "sponsor"}}
|
||||||
|
- Domain: {{get (get data "program") "domain"}}
|
||||||
|
- Business case: {{get (get data "program") "guide"}}
|
||||||
|
|
||||||
|
| Phase | Timeframe | Commentary |
|
||||||
|
|-------|-----------|------------|
|
||||||
|
{{#each phases}}
|
||||||
|
| {{name}} | {{timeframe}} | {{comment}} |
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{mdDiagram "overview_diagram.md" name}}
|
||||||
|
{{/with}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Stakeholders
|
||||||
|
|
||||||
|
| Name | Title | Role |
|
||||||
|
|------|-------|------|
|
||||||
|
{{#each (get data "stakeholders")}}
|
||||||
|
| {{name}} | {{title}} | {{role}} |
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
## Patterns
|
||||||
|
|
||||||
|
No new patterns are proposed
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"name": "tool",
|
"name": "dependency.tool",
|
||||||
"description": "retrieve tool definitions from rediOps"
|
"description": "retrieve tool definitions from rediOps dependency section"
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue