ai-flow-dev 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +408 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +791 -0
- package/dist/cli.js.map +1 -0
- package/dist/fs-utils.d.ts +2 -0
- package/dist/fs-utils.d.ts.map +1 -0
- package/dist/fs-utils.js +46 -0
- package/dist/fs-utils.js.map +1 -0
- package/package.json +71 -0
- package/prompts/backend/flow-dev-feature.md +1318 -0
- package/prompts/backend/flow-dev-fix.md +903 -0
- package/prompts/backend/flow-dev-refactor.md +715 -0
- package/prompts/backend/flow-dev-review.md +401 -0
- package/prompts/backend/flow-dev-work.md +1129 -0
- package/prompts/backend/flow-docs-gen-phase-0.md +1840 -0
- package/prompts/backend/flow-docs-gen-phase-1.md +435 -0
- package/prompts/backend/flow-docs-gen-phase-2.md +460 -0
- package/prompts/backend/flow-docs-gen-phase-3.md +684 -0
- package/prompts/backend/flow-docs-gen-phase-4.md +516 -0
- package/prompts/backend/flow-docs-gen-phase-5.md +637 -0
- package/prompts/backend/flow-docs-gen-phase-6.md +465 -0
- package/prompts/backend/flow-docs-gen-phase-7.md +1207 -0
- package/prompts/backend/flow-docs-gen.md +820 -0
- package/prompts/backend/flow-docs-sync.md +526 -0
- package/prompts/backend/flow-project-init.md +248 -0
- package/prompts/backend/flow-project-roadmap.md +1159 -0
- package/prompts/frontend/flow-docs-gen-phase-0.md +494 -0
- package/prompts/frontend/flow-docs-gen-phase-1.md +449 -0
- package/prompts/frontend/flow-docs-gen-phase-2.md +983 -0
- package/prompts/frontend/flow-docs-gen-phase-3.md +685 -0
- package/prompts/frontend/flow-docs-gen-phase-4.md +480 -0
- package/prompts/frontend/flow-docs-gen-phase-5.md +483 -0
- package/prompts/frontend/flow-docs-gen-phase-6.md +570 -0
- package/prompts/frontend/flow-docs-gen-phase-7.md +582 -0
- package/prompts/frontend/flow-docs-gen.md +413 -0
- package/prompts/frontend/flow-docs-sync.md +561 -0
- package/prompts/mobile/flow-docs-gen-phase-0.md +387 -0
- package/prompts/mobile/flow-docs-gen-phase-1.md +530 -0
- package/prompts/mobile/flow-docs-gen-phase-2.md +584 -0
- package/prompts/mobile/flow-docs-gen-phase-3.md +659 -0
- package/prompts/mobile/flow-docs-gen-phase-4.md +363 -0
- package/prompts/mobile/flow-docs-gen-phase-5.md +369 -0
- package/prompts/mobile/flow-docs-gen-phase-6.md +490 -0
- package/prompts/mobile/flow-docs-gen-phase-7.md +407 -0
- package/prompts/mobile/flow-docs-gen.md +430 -0
- package/prompts/mobile/flow-docs-sync.md +634 -0
- package/templates/backend/.clauderules.template +111 -0
- package/templates/backend/.cursorrules.template +102 -0
- package/templates/backend/.env.example.template +122 -0
- package/templates/backend/README.template.md +200 -0
- package/templates/backend/ai-instructions.template.md +354 -0
- package/templates/backend/copilot-instructions.template.md +160 -0
- package/templates/backend/docs/api.template.md +251 -0
- package/templates/backend/docs/architecture.template.md +612 -0
- package/templates/backend/docs/business-flows.template.md +109 -0
- package/templates/backend/docs/code-standards.template.md +828 -0
- package/templates/backend/docs/contributing.template.md +163 -0
- package/templates/backend/docs/data-model.template.md +416 -0
- package/templates/backend/docs/operations.template.md +591 -0
- package/templates/backend/docs/testing.template.md +762 -0
- package/templates/backend/project-brief.template.md +176 -0
- package/templates/backend/specs/configuration.template.md +133 -0
- package/templates/backend/specs/security.template.md +422 -0
- package/templates/frontend/README.template.md +121 -0
- package/templates/frontend/ai-instructions.template.md +368 -0
- package/templates/frontend/docs/api-integration.template.md +390 -0
- package/templates/frontend/docs/components.template.md +567 -0
- package/templates/frontend/docs/error-handling.template.md +385 -0
- package/templates/frontend/docs/operations.template.md +123 -0
- package/templates/frontend/docs/performance.template.md +140 -0
- package/templates/frontend/docs/pwa.template.md +135 -0
- package/templates/frontend/docs/state-management.template.md +394 -0
- package/templates/frontend/docs/styling.template.md +779 -0
- package/templates/frontend/docs/testing.template.md +736 -0
- package/templates/frontend/project-brief.template.md +55 -0
- package/templates/frontend/specs/accessibility.template.md +111 -0
- package/templates/frontend/specs/configuration.template.md +520 -0
- package/templates/frontend/specs/security.template.md +197 -0
- package/templates/fullstack/README.template.md +282 -0
- package/templates/fullstack/ai-instructions.template.md +487 -0
- package/templates/fullstack/project-brief.template.md +197 -0
- package/templates/fullstack/specs/configuration.template.md +380 -0
- package/templates/mobile/AGENT.template.md +251 -0
- package/templates/mobile/README.template.md +195 -0
- package/templates/mobile/ai-instructions.template.md +221 -0
- package/templates/mobile/docs/app-store.template.md +163 -0
- package/templates/mobile/docs/architecture.template.md +100 -0
- package/templates/mobile/docs/native-features.template.md +137 -0
- package/templates/mobile/docs/navigation.template.md +81 -0
- package/templates/mobile/docs/offline-strategy.template.md +90 -0
- package/templates/mobile/docs/permissions.template.md +70 -0
- package/templates/mobile/docs/state-management.template.md +116 -0
- package/templates/mobile/docs/testing.template.md +146 -0
- package/templates/mobile/project-brief.template.md +97 -0
- package/templates/mobile/specs/build-configuration.template.md +116 -0
- package/templates/mobile/specs/deployment.template.md +114 -0
- package/templates/shared/AGENT.template.md +252 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
> Business context and objectives for {{PROJECT_NAME}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🎯 Project Overview
|
|
8
|
+
|
|
9
|
+
### What Problem Are We Solving?
|
|
10
|
+
|
|
11
|
+
{{PROBLEM_STATEMENT}}
|
|
12
|
+
|
|
13
|
+
### Description
|
|
14
|
+
|
|
15
|
+
{{PROJECT_DESCRIPTION}}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 👥 Target Users
|
|
20
|
+
|
|
21
|
+
{{TARGET_USERS_DESCRIPTION}}
|
|
22
|
+
|
|
23
|
+
**User Types:**
|
|
24
|
+
{{#EACH TARGET_USER}}
|
|
25
|
+
- **{{USER_TYPE}}**: {{USER_DESCRIPTION}}
|
|
26
|
+
{{/EACH}}
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🎯 Business Objectives
|
|
31
|
+
|
|
32
|
+
### Primary Objectives
|
|
33
|
+
|
|
34
|
+
{{#EACH BUSINESS_OBJECTIVE}}
|
|
35
|
+
{{INDEX}}. **{{OBJECTIVE_TITLE}}**
|
|
36
|
+
- {{OBJECTIVE_DESCRIPTION}}
|
|
37
|
+
- Success metric: {{SUCCESS_METRIC}}
|
|
38
|
+
{{/EACH}}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ✅ Scope
|
|
43
|
+
|
|
44
|
+
### In Scope
|
|
45
|
+
|
|
46
|
+
**Features and capabilities included in this project:**
|
|
47
|
+
|
|
48
|
+
{{#EACH IN_SCOPE_FEATURE}}
|
|
49
|
+
- **{{FEATURE_NAME}}**: {{FEATURE_DESCRIPTION}}
|
|
50
|
+
{{/EACH}}
|
|
51
|
+
|
|
52
|
+
### Out of Scope
|
|
53
|
+
|
|
54
|
+
**Features explicitly NOT included:**
|
|
55
|
+
|
|
56
|
+
{{#EACH OUT_OF_SCOPE_FEATURE}}
|
|
57
|
+
- **{{FEATURE_NAME}}**: {{REASON_OUT_OF_SCOPE}}
|
|
58
|
+
{{/EACH}}
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🚧 Constraints
|
|
63
|
+
|
|
64
|
+
{{#EACH CONSTRAINT}}
|
|
65
|
+
### {{CONSTRAINT_TYPE}}
|
|
66
|
+
|
|
67
|
+
{{CONSTRAINT_DESCRIPTION}}
|
|
68
|
+
|
|
69
|
+
**Impact:** {{CONSTRAINT_IMPACT}}
|
|
70
|
+
|
|
71
|
+
{{/EACH}}
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 📊 Success Metrics (KPIs)
|
|
76
|
+
|
|
77
|
+
### Technical Metrics
|
|
78
|
+
|
|
79
|
+
{{#EACH TECHNICAL_METRIC}}
|
|
80
|
+
- **{{METRIC_NAME}}**: {{METRIC_TARGET}}
|
|
81
|
+
{{/EACH}}
|
|
82
|
+
|
|
83
|
+
### Business Metrics
|
|
84
|
+
|
|
85
|
+
{{#EACH BUSINESS_METRIC}}
|
|
86
|
+
- **{{METRIC_NAME}}**: {{METRIC_TARGET}}
|
|
87
|
+
{{/EACH}}
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 🗓️ Project Context
|
|
92
|
+
|
|
93
|
+
**Current Phase:** {{PROJECT_PHASE}}
|
|
94
|
+
|
|
95
|
+
{{#IF TIMELINE}}**Estimated Timeline:** {{TIMELINE}}{{/IF}}
|
|
96
|
+
|
|
97
|
+
{{#IF BUDGET}}**Budget Constraints:** {{BUDGET}}{{/IF}}
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 🏢 Stakeholders
|
|
102
|
+
|
|
103
|
+
{{#EACH STAKEHOLDER}}
|
|
104
|
+
- **{{STAKEHOLDER_ROLE}}**: {{STAKEHOLDER_INTEREST}}
|
|
105
|
+
{{/EACH}}
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🔄 Integration Points
|
|
110
|
+
|
|
111
|
+
**External Systems:**
|
|
112
|
+
|
|
113
|
+
{{#IF NO_INTEGRATIONS}}
|
|
114
|
+
None - This is a standalone system.
|
|
115
|
+
{{ELSE}}
|
|
116
|
+
{{#EACH INTEGRATION}}
|
|
117
|
+
- **{{INTEGRATION_NAME}}**: {{INTEGRATION_PURPOSE}}
|
|
118
|
+
- Type: {{INTEGRATION_TYPE}}
|
|
119
|
+
- Critical: {{IS_CRITICAL}}
|
|
120
|
+
{{/EACH}}
|
|
121
|
+
{{/IF}}
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 📋 Key Assumptions
|
|
126
|
+
|
|
127
|
+
{{#EACH ASSUMPTION}}
|
|
128
|
+
- {{ASSUMPTION_DESCRIPTION}}
|
|
129
|
+
{{/EACH}}
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## ⚠️ Risks
|
|
134
|
+
|
|
135
|
+
{{#EACH RISK}}
|
|
136
|
+
### {{RISK_TITLE}}
|
|
137
|
+
|
|
138
|
+
**Description:** {{RISK_DESCRIPTION}}
|
|
139
|
+
|
|
140
|
+
**Probability:** {{RISK_PROBABILITY}}
|
|
141
|
+
|
|
142
|
+
**Impact:** {{RISK_IMPACT}}
|
|
143
|
+
|
|
144
|
+
**Mitigation:** {{RISK_MITIGATION}}
|
|
145
|
+
|
|
146
|
+
{{/EACH}}
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 🎓 Domain Glossary
|
|
151
|
+
|
|
152
|
+
**Key terms and concepts:**
|
|
153
|
+
|
|
154
|
+
{{#EACH GLOSSARY_TERM}}
|
|
155
|
+
- **{{TERM}}**: {{DEFINITION}}
|
|
156
|
+
{{/EACH}}
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 📚 References
|
|
161
|
+
|
|
162
|
+
{{#IF REFERENCES}}
|
|
163
|
+
{{#EACH REFERENCE}}
|
|
164
|
+
- {{REFERENCE_TITLE}}: {{REFERENCE_URL}}
|
|
165
|
+
{{/EACH}}
|
|
166
|
+
{{ELSE}}
|
|
167
|
+
No external references.
|
|
168
|
+
{{/IF}}
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
**Document Version:** 1.0
|
|
173
|
+
|
|
174
|
+
**Last Updated:** {{GENERATION_DATE}}
|
|
175
|
+
|
|
176
|
+
**Generated by:** AI Flow v1.0.0
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Configuration Specifications
|
|
2
|
+
|
|
3
|
+
> Environment variables and configuration management for {{PROJECT_NAME}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Environment Variables
|
|
8
|
+
|
|
9
|
+
### Required Variables
|
|
10
|
+
|
|
11
|
+
{{#EACH REQUIRED_VAR}}
|
|
12
|
+
#### `{{VAR_NAME}}`
|
|
13
|
+
|
|
14
|
+
**Description:** {{VAR_DESCRIPTION}}
|
|
15
|
+
|
|
16
|
+
**Type:** {{VAR_TYPE}}
|
|
17
|
+
|
|
18
|
+
**Example:** `{{VAR_EXAMPLE}}`
|
|
19
|
+
|
|
20
|
+
{{#IF VAR_VALIDATION}}**Validation:** {{VAR_VALIDATION}}{{/IF}}
|
|
21
|
+
|
|
22
|
+
{{/EACH}}
|
|
23
|
+
|
|
24
|
+
### Optional Variables
|
|
25
|
+
|
|
26
|
+
{{#EACH OPTIONAL_VAR}}
|
|
27
|
+
#### `{{VAR_NAME}}`
|
|
28
|
+
|
|
29
|
+
**Description:** {{VAR_DESCRIPTION}}
|
|
30
|
+
|
|
31
|
+
**Type:** {{VAR_TYPE}}
|
|
32
|
+
|
|
33
|
+
**Default:** `{{VAR_DEFAULT}}`
|
|
34
|
+
|
|
35
|
+
**Example:** `{{VAR_EXAMPLE}}`
|
|
36
|
+
|
|
37
|
+
{{/EACH}}
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 🌍 Configuration by Environment
|
|
42
|
+
|
|
43
|
+
### Development
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
{{DEV_ENV_CONFIG}}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Staging
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
{{STAGING_ENV_CONFIG}}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Production
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
{{PRODUCTION_ENV_CONFIG}}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🔌 External Services
|
|
64
|
+
|
|
65
|
+
{{#EACH EXTERNAL_SERVICE}}
|
|
66
|
+
### {{SERVICE_NAME}}
|
|
67
|
+
|
|
68
|
+
**Purpose:** {{SERVICE_PURPOSE}}
|
|
69
|
+
|
|
70
|
+
**Configuration:**
|
|
71
|
+
```bash
|
|
72
|
+
{{SERVICE_ENV_VARS}}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Documentation:** {{SERVICE_DOCS_URL}}
|
|
76
|
+
|
|
77
|
+
{{#IF SERVICE_FALLBACK}}**Fallback:** {{SERVICE_FALLBACK}}{{/IF}}
|
|
78
|
+
|
|
79
|
+
{{/EACH}}
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 💾 Database Configuration
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
{{DATABASE_CONFIG}}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Connection Pool:**
|
|
90
|
+
- Min: {{DB_POOL_MIN}}
|
|
91
|
+
- Max: {{DB_POOL_MAX}}
|
|
92
|
+
- Idle Timeout: {{DB_IDLE_TIMEOUT}}ms
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 🔐 Secrets
|
|
97
|
+
|
|
98
|
+
**Never commit these variables:**
|
|
99
|
+
|
|
100
|
+
{{#EACH SECRET_VAR}}
|
|
101
|
+
- `{{VAR_NAME}}` - {{VAR_PURPOSE}}
|
|
102
|
+
{{/EACH}}
|
|
103
|
+
|
|
104
|
+
**Storage:** {{SECRETS_STORAGE}}
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 🎚️ Feature Flags
|
|
109
|
+
|
|
110
|
+
{{#IF FEATURE_FLAGS}}
|
|
111
|
+
{{#EACH FEATURE_FLAG}}
|
|
112
|
+
### `{{FLAG_NAME}}`
|
|
113
|
+
|
|
114
|
+
**Description:** {{FLAG_DESCRIPTION}}
|
|
115
|
+
|
|
116
|
+
**Default:** {{FLAG_DEFAULT}}
|
|
117
|
+
|
|
118
|
+
**Environments:** {{FLAG_ENVIRONMENTS}}
|
|
119
|
+
|
|
120
|
+
{{/EACH}}
|
|
121
|
+
|
|
122
|
+
{{ELSE}}
|
|
123
|
+
Feature flags not implemented yet.
|
|
124
|
+
|
|
125
|
+
{{/IF}}
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
**Document Version:** 1.0
|
|
130
|
+
|
|
131
|
+
**Last Updated:** {{GENERATION_DATE}}
|
|
132
|
+
|
|
133
|
+
**Generated by:** AI Flow v1.0.0
|
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
# Security Specifications
|
|
2
|
+
|
|
3
|
+
> Security policies, authentication, authorization, and compliance for {{PROJECT_NAME}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🔐 Authentication
|
|
8
|
+
|
|
9
|
+
### Method
|
|
10
|
+
|
|
11
|
+
**Type:** {{AUTH_METHOD}}
|
|
12
|
+
|
|
13
|
+
{{#IF JWT}}
|
|
14
|
+
### JWT Configuration
|
|
15
|
+
|
|
16
|
+
**Access Token:**
|
|
17
|
+
- Algorithm: {{JWT_ALGORITHM}}
|
|
18
|
+
- Lifetime: {{ACCESS_TOKEN_LIFETIME}}
|
|
19
|
+
- Storage: {{ACCESS_TOKEN_STORAGE}}
|
|
20
|
+
|
|
21
|
+
**Refresh Token:**
|
|
22
|
+
- Lifetime: {{REFRESH_TOKEN_LIFETIME}}
|
|
23
|
+
- Storage: {{REFRESH_TOKEN_STORAGE}}
|
|
24
|
+
- Rotation: {{REFRESH_TOKEN_ROTATION}}
|
|
25
|
+
|
|
26
|
+
**Token Claims:**
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"sub": "{{TOKEN_CLAIM_SUB}}",
|
|
30
|
+
"email": "{{TOKEN_CLAIM_EMAIL}}",
|
|
31
|
+
"roles": {{TOKEN_CLAIM_ROLES}},
|
|
32
|
+
"iat": 1234567890,
|
|
33
|
+
"exp": 1234571490
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Example:**
|
|
38
|
+
```{{LANGUAGE}}
|
|
39
|
+
{{JWT_IMPLEMENTATION_EXAMPLE}}
|
|
40
|
+
```
|
|
41
|
+
{{/IF}}
|
|
42
|
+
|
|
43
|
+
{{#IF OAUTH}}
|
|
44
|
+
### OAuth 2.0 / OpenID Connect
|
|
45
|
+
|
|
46
|
+
**Providers:**
|
|
47
|
+
{{#EACH OAUTH_PROVIDER}}
|
|
48
|
+
- {{PROVIDER_NAME}}
|
|
49
|
+
{{/EACH}}
|
|
50
|
+
|
|
51
|
+
**Flow:** {{OAUTH_FLOW}}
|
|
52
|
+
|
|
53
|
+
**Scopes:** {{OAUTH_SCOPES}}
|
|
54
|
+
|
|
55
|
+
{{/IF}}
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🛡️ Authorization
|
|
60
|
+
|
|
61
|
+
### Model
|
|
62
|
+
|
|
63
|
+
**Type:** {{AUTHORIZATION_MODEL}}
|
|
64
|
+
|
|
65
|
+
{{#IF RBAC}}
|
|
66
|
+
### Roles
|
|
67
|
+
|
|
68
|
+
{{#EACH ROLE}}
|
|
69
|
+
#### {{ROLE_NAME}}
|
|
70
|
+
|
|
71
|
+
**Description:** {{ROLE_DESCRIPTION}}
|
|
72
|
+
|
|
73
|
+
**Permissions:**
|
|
74
|
+
{{#EACH PERMISSION}}
|
|
75
|
+
- {{PERMISSION_DESCRIPTION}}
|
|
76
|
+
{{/EACH}}
|
|
77
|
+
|
|
78
|
+
{{/EACH}}
|
|
79
|
+
|
|
80
|
+
### Permission Checking
|
|
81
|
+
|
|
82
|
+
```{{LANGUAGE}}
|
|
83
|
+
{{PERMISSION_CHECK_EXAMPLE}}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
{{/IF}}
|
|
87
|
+
|
|
88
|
+
{{#IF ABAC}}
|
|
89
|
+
### Attribute-Based Rules
|
|
90
|
+
|
|
91
|
+
{{#EACH ABAC_RULE}}
|
|
92
|
+
- {{RULE_DESCRIPTION}}
|
|
93
|
+
{{/EACH}}
|
|
94
|
+
|
|
95
|
+
{{/IF}}
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 🔑 Password Policy
|
|
100
|
+
|
|
101
|
+
**Requirements:**
|
|
102
|
+
- Minimum length: {{PASSWORD_MIN_LENGTH}} characters
|
|
103
|
+
- {{#IF PASSWORD_UPPERCASE}}Uppercase letter required{{/IF}}
|
|
104
|
+
- {{#IF PASSWORD_LOWERCASE}}Lowercase letter required{{/IF}}
|
|
105
|
+
- {{#IF PASSWORD_NUMBER}}Number required{{/IF}}
|
|
106
|
+
- {{#IF PASSWORD_SPECIAL}}Special character required{{/IF}}
|
|
107
|
+
|
|
108
|
+
**Hashing:**
|
|
109
|
+
- Algorithm: {{PASSWORD_HASH_ALGORITHM}}
|
|
110
|
+
- Rounds/Cost: {{PASSWORD_HASH_ROUNDS}}
|
|
111
|
+
|
|
112
|
+
**Example:**
|
|
113
|
+
```{{LANGUAGE}}
|
|
114
|
+
{{PASSWORD_HASHING_EXAMPLE}}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 🚦 Rate Limiting
|
|
120
|
+
|
|
121
|
+
**Strategy:** {{RATE_LIMIT_STRATEGY}}
|
|
122
|
+
|
|
123
|
+
{{#EACH RATE_LIMIT_RULE}}
|
|
124
|
+
### {{ENDPOINT_PATTERN}}
|
|
125
|
+
|
|
126
|
+
- Limit: {{RATE_LIMIT_COUNT}} requests per {{RATE_LIMIT_WINDOW}}
|
|
127
|
+
- Key: {{RATE_LIMIT_KEY}}
|
|
128
|
+
- Response: {{RATE_LIMIT_RESPONSE}}
|
|
129
|
+
|
|
130
|
+
{{/EACH}}
|
|
131
|
+
|
|
132
|
+
**Implementation:**
|
|
133
|
+
```{{LANGUAGE}}
|
|
134
|
+
{{RATE_LIMIT_IMPLEMENTATION}}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 🌐 CORS Policy
|
|
140
|
+
|
|
141
|
+
**Allowed Origins:**
|
|
142
|
+
{{#EACH CORS_ORIGIN}}
|
|
143
|
+
- {{ORIGIN_URL}}
|
|
144
|
+
{{/EACH}}
|
|
145
|
+
|
|
146
|
+
**Allowed Methods:** {{CORS_METHODS}}
|
|
147
|
+
|
|
148
|
+
**Allowed Headers:** {{CORS_HEADERS}}
|
|
149
|
+
|
|
150
|
+
**Credentials:** {{CORS_CREDENTIALS}}
|
|
151
|
+
|
|
152
|
+
**Max Age:** {{CORS_MAX_AGE}} seconds
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🔒 Data Encryption
|
|
157
|
+
|
|
158
|
+
### In Transit
|
|
159
|
+
|
|
160
|
+
**Protocol:** TLS {{TLS_VERSION}}+
|
|
161
|
+
|
|
162
|
+
**Certificate:** {{TLS_CERTIFICATE}}
|
|
163
|
+
|
|
164
|
+
**HSTS:** {{#IF HSTS}}Enabled (max-age: {{HSTS_MAX_AGE}}){{ELSE}}Disabled{{/IF}}
|
|
165
|
+
|
|
166
|
+
### At Rest
|
|
167
|
+
|
|
168
|
+
{{#IF ENCRYPTION_AT_REST}}
|
|
169
|
+
**Encrypted Fields:**
|
|
170
|
+
{{#EACH ENCRYPTED_FIELD}}
|
|
171
|
+
- `{{TABLE_NAME}}.{{FIELD_NAME}}` - {{ENCRYPTION_REASON}}
|
|
172
|
+
{{/EACH}}
|
|
173
|
+
|
|
174
|
+
**Algorithm:** {{ENCRYPTION_ALGORITHM}}
|
|
175
|
+
|
|
176
|
+
**Key Management:** {{KEY_MANAGEMENT}}
|
|
177
|
+
|
|
178
|
+
**Example:**
|
|
179
|
+
```{{LANGUAGE}}
|
|
180
|
+
{{ENCRYPTION_EXAMPLE}}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
{{ELSE}}
|
|
184
|
+
**Status:** Not implemented yet
|
|
185
|
+
|
|
186
|
+
{{/IF}}
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 🛡️ Security Headers
|
|
191
|
+
|
|
192
|
+
{{#EACH SECURITY_HEADER}}
|
|
193
|
+
### {{HEADER_NAME}}
|
|
194
|
+
|
|
195
|
+
**Value:** `{{HEADER_VALUE}}`
|
|
196
|
+
|
|
197
|
+
**Purpose:** {{HEADER_PURPOSE}}
|
|
198
|
+
|
|
199
|
+
{{/EACH}}
|
|
200
|
+
|
|
201
|
+
**Implementation:**
|
|
202
|
+
```{{LANGUAGE}}
|
|
203
|
+
{{SECURITY_HEADERS_IMPLEMENTATION}}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## ✅ Input Validation
|
|
209
|
+
|
|
210
|
+
**Library:** {{VALIDATION_LIBRARY}}
|
|
211
|
+
|
|
212
|
+
**Rules:**
|
|
213
|
+
- ✅ Validate all user input
|
|
214
|
+
- ✅ Whitelist allowed values
|
|
215
|
+
- ✅ Sanitize before database queries
|
|
216
|
+
- ✅ Use parameterized queries
|
|
217
|
+
- ❌ Never trust client data
|
|
218
|
+
|
|
219
|
+
**Example:**
|
|
220
|
+
```{{LANGUAGE}}
|
|
221
|
+
{{INPUT_VALIDATION_EXAMPLE}}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 🚫 Security Vulnerabilities Prevention
|
|
227
|
+
|
|
228
|
+
### SQL Injection
|
|
229
|
+
|
|
230
|
+
```{{LANGUAGE}}
|
|
231
|
+
{{SQL_INJECTION_PREVENTION}}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### XSS (Cross-Site Scripting)
|
|
235
|
+
|
|
236
|
+
```{{LANGUAGE}}
|
|
237
|
+
{{XSS_PREVENTION}}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### CSRF (Cross-Site Request Forgery)
|
|
241
|
+
|
|
242
|
+
{{CSRF_PREVENTION_STRATEGY}}
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 📜 Compliance
|
|
247
|
+
|
|
248
|
+
{{#EACH COMPLIANCE_REQ}}
|
|
249
|
+
### {{COMPLIANCE_NAME}}
|
|
250
|
+
|
|
251
|
+
**Applicable:** {{IS_APPLICABLE}}
|
|
252
|
+
|
|
253
|
+
**Requirements:**
|
|
254
|
+
{{#EACH REQUIREMENT}}
|
|
255
|
+
- {{REQUIREMENT_DESCRIPTION}}
|
|
256
|
+
{{/EACH}}
|
|
257
|
+
|
|
258
|
+
**Implementation:**
|
|
259
|
+
{{COMPLIANCE_IMPLEMENTATION}}
|
|
260
|
+
|
|
261
|
+
{{/EACH}}
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 📝 Audit Logging
|
|
266
|
+
|
|
267
|
+
**What We Log:**
|
|
268
|
+
{{#EACH AUDIT_LOG_EVENT}}
|
|
269
|
+
- {{EVENT_DESCRIPTION}}
|
|
270
|
+
{{/EACH}}
|
|
271
|
+
|
|
272
|
+
**Retention:** {{AUDIT_LOG_RETENTION}}
|
|
273
|
+
|
|
274
|
+
**Format:**
|
|
275
|
+
```json
|
|
276
|
+
{{AUDIT_LOG_FORMAT}}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 🔒 Secrets Management
|
|
282
|
+
|
|
283
|
+
**Tool:** {{SECRETS_MANAGER}}
|
|
284
|
+
|
|
285
|
+
**Secrets Stored:**
|
|
286
|
+
{{#EACH SECRET}}
|
|
287
|
+
- {{SECRET_NAME}} - {{SECRET_PURPOSE}}
|
|
288
|
+
{{/EACH}}
|
|
289
|
+
|
|
290
|
+
**Access Policy:** {{SECRETS_ACCESS_POLICY}}
|
|
291
|
+
|
|
292
|
+
**Rotation:** {{SECRETS_ROTATION}}
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## 🔑 API Keys Management
|
|
297
|
+
|
|
298
|
+
{{#IF API_KEYS_ENABLED}}
|
|
299
|
+
**Enabled:** Yes
|
|
300
|
+
|
|
301
|
+
**Use Cases:**
|
|
302
|
+
{{#EACH API_KEY_USE_CASE}}
|
|
303
|
+
- {{USE_CASE_DESCRIPTION}}
|
|
304
|
+
{{/EACH}}
|
|
305
|
+
|
|
306
|
+
### Key Generation
|
|
307
|
+
|
|
308
|
+
**Format:** {{API_KEY_FORMAT}}
|
|
309
|
+
|
|
310
|
+
**Length:** {{API_KEY_LENGTH}} characters
|
|
311
|
+
|
|
312
|
+
**Prefix:** {{API_KEY_PREFIX}}
|
|
313
|
+
|
|
314
|
+
**Example:**
|
|
315
|
+
```{{LANGUAGE}}
|
|
316
|
+
{{API_KEY_GENERATION_EXAMPLE}}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Key Storage
|
|
320
|
+
|
|
321
|
+
**Location:** {{API_KEY_STORAGE}} ({{#IF HASHED}}Hashed{{ELSE}}Plain text{{/IF}})
|
|
322
|
+
|
|
323
|
+
**Hashing Algorithm:** {{API_KEY_HASH_ALGORITHM}}
|
|
324
|
+
|
|
325
|
+
### Key Rotation
|
|
326
|
+
|
|
327
|
+
**Strategy:** {{API_KEY_ROTATION_STRATEGY}}
|
|
328
|
+
|
|
329
|
+
**Frequency:** {{API_KEY_ROTATION_FREQUENCY}}
|
|
330
|
+
|
|
331
|
+
**Process:**
|
|
332
|
+
{{#EACH API_KEY_ROTATION_STEP}}
|
|
333
|
+
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
334
|
+
{{/EACH}}
|
|
335
|
+
|
|
336
|
+
### Key Revocation
|
|
337
|
+
|
|
338
|
+
**Revocation Process:**
|
|
339
|
+
{{#EACH API_KEY_REVOCATION_STEP}}
|
|
340
|
+
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
341
|
+
{{/EACH}}
|
|
342
|
+
|
|
343
|
+
**Revocation Reasons:**
|
|
344
|
+
- Compromised key
|
|
345
|
+
- Key expiration
|
|
346
|
+
- User request
|
|
347
|
+
- Security incident
|
|
348
|
+
|
|
349
|
+
### Rate Limiting by API Key
|
|
350
|
+
|
|
351
|
+
**Limits:**
|
|
352
|
+
{{#EACH API_KEY_RATE_LIMIT}}
|
|
353
|
+
- **{{KEY_TIER}}**: {{LIMIT_COUNT}} requests per {{LIMIT_WINDOW}}
|
|
354
|
+
{{/EACH}}
|
|
355
|
+
|
|
356
|
+
{{ELSE}}
|
|
357
|
+
**API Keys:** Not used - Authentication via JWT/Sessions only
|
|
358
|
+
{{/IF}}
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 🔍 Dependency Security
|
|
363
|
+
|
|
364
|
+
**Scanning Tool:** {{DEPENDENCY_SCANNER}}
|
|
365
|
+
|
|
366
|
+
**Frequency:** {{SCAN_FREQUENCY}}
|
|
367
|
+
|
|
368
|
+
**Automated Scanning:** {{#IF AUTO_SCAN}}Enabled{{ELSE}}Manual{{/IF}}
|
|
369
|
+
|
|
370
|
+
### Vulnerability Management
|
|
371
|
+
|
|
372
|
+
**Process:**
|
|
373
|
+
{{#EACH VULN_MANAGEMENT_STEP}}
|
|
374
|
+
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
375
|
+
{{/EACH}}
|
|
376
|
+
|
|
377
|
+
**Severity Levels:**
|
|
378
|
+
- **Critical**: Fix within 24 hours
|
|
379
|
+
- **High**: Fix within 7 days
|
|
380
|
+
- **Medium**: Fix within 30 days
|
|
381
|
+
- **Low**: Fix in next release
|
|
382
|
+
|
|
383
|
+
### Security Audit Commands
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
# Check for vulnerabilities
|
|
387
|
+
{{SECURITY_AUDIT_COMMAND}}
|
|
388
|
+
|
|
389
|
+
# Fix automatically fixable issues
|
|
390
|
+
{{SECURITY_FIX_COMMAND}}
|
|
391
|
+
|
|
392
|
+
# Update dependencies
|
|
393
|
+
{{DEPENDENCY_UPDATE_COMMAND}}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Dependency Update Policy
|
|
397
|
+
|
|
398
|
+
- ✅ Review changelogs before updating
|
|
399
|
+
- ✅ Test updates in staging first
|
|
400
|
+
- ✅ Pin exact versions in production
|
|
401
|
+
- ✅ Regular security audits ({{AUDIT_FREQUENCY}})
|
|
402
|
+
- ❌ Don't ignore critical vulnerabilities
|
|
403
|
+
- ❌ Don't update without testing
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## 🚨 Security Incident Response
|
|
408
|
+
|
|
409
|
+
**Contact:** {{SECURITY_CONTACT}}
|
|
410
|
+
|
|
411
|
+
**Process:**
|
|
412
|
+
{{#EACH INCIDENT_STEP}}
|
|
413
|
+
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
414
|
+
{{/EACH}}
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
**Document Version:** 1.0
|
|
419
|
+
|
|
420
|
+
**Last Updated:** {{GENERATION_DATE}}
|
|
421
|
+
|
|
422
|
+
**Generated by:** AI Flow v1.0.0
|