@tamyla/clodo-framework 3.1.21 → 3.1.22
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/CHANGELOG.md +9 -0
- package/README.md +53 -0
- package/dist/bin/clodo-service.js +47 -15
- package/dist/bin/commands/deploy.js +115 -83
- package/dist/bin/commands/helpers/deployment-ui.js +138 -0
- package/dist/bin/commands/helpers/deployment-verification.js +251 -0
- package/dist/bin/commands/helpers/error-recovery.js +80 -0
- package/dist/bin/commands/helpers/resource-detection.js +113 -0
- package/dist/bin/commands/validate.js +1 -1
- package/dist/bin/security/security-cli.js +1 -1
- package/dist/bin/shared/cache/configuration-cache.js +82 -0
- package/dist/bin/shared/cloudflare/domain-manager.js +1 -1
- package/dist/bin/shared/cloudflare/index.js +1 -1
- package/dist/bin/shared/cloudflare/ops.js +6 -4
- package/dist/bin/shared/config/ConfigurationManager.js +23 -1
- package/dist/bin/shared/config/command-config-manager.js +19 -3
- package/dist/bin/shared/config/index.js +1 -1
- package/dist/bin/shared/deployment/credential-collector.js +30 -7
- package/dist/bin/shared/deployment/index.js +2 -2
- package/dist/bin/shared/deployment/rollback-manager.js +4 -520
- package/dist/bin/shared/deployment/utilities/d1-error-recovery.js +177 -0
- package/dist/bin/shared/deployment/validator.js +40 -10
- package/dist/bin/shared/deployment/workflows/deployment-summary.js +214 -0
- package/dist/bin/shared/deployment/workflows/interactive-confirmation.js +188 -0
- package/dist/bin/shared/deployment/workflows/interactive-database-workflow.js +234 -0
- package/dist/bin/shared/deployment/workflows/interactive-domain-info-gatherer.js +240 -0
- package/dist/bin/shared/deployment/workflows/interactive-secret-workflow.js +228 -0
- package/dist/bin/shared/deployment/workflows/interactive-testing-workflow.js +235 -0
- package/dist/bin/shared/deployment/workflows/interactive-validation.js +218 -0
- package/dist/bin/shared/error-handling/error-classifier.js +46 -0
- package/dist/bin/shared/monitoring/health-checker.js +129 -1
- package/dist/bin/shared/monitoring/memory-manager.js +17 -6
- package/dist/bin/shared/routing/domain-router.js +1 -1
- package/dist/bin/shared/utils/deployment-validator.js +97 -0
- package/dist/bin/shared/utils/formatters.js +10 -0
- package/dist/bin/shared/utils/index.js +13 -1
- package/dist/bin/shared/utils/interactive-prompts.js +34 -18
- package/dist/bin/shared/utils/progress-manager.js +2 -2
- package/dist/bin/shared/utils/progress-spinner.js +53 -0
- package/dist/bin/shared/utils/sensitive-redactor.js +91 -0
- package/dist/bin/shared/validation/ValidationRegistry.js +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/patterns/insecure-patterns.js +1 -1
- package/dist/utils/constants.js +102 -0
- package/dist/utils/deployment/wrangler-config-manager.js +215 -48
- package/dist/utils/framework-config.js +2 -2
- package/dist/utils/interactive-prompts.js +10 -59
- package/package.json +16 -8
- package/dist/bin/clodo-service-old.js +0 -868
- package/dist/bin/clodo-service-test.js +0 -10
- package/dist/bin/commands/assess.js +0 -91
- package/dist/bin/commands/create.js +0 -77
- package/dist/bin/commands/diagnose.js +0 -83
- package/dist/bin/commands/helpers.js +0 -138
- package/dist/bin/commands/update.js +0 -75
- package/dist/bin/database/deployment-db-manager.js +0 -423
- package/dist/bin/database/enterprise-db-manager.js +0 -457
- package/dist/bin/database/wrangler-d1-manager.js +0 -685
- package/dist/bin/deployment/enterprise-deploy.js +0 -877
- package/dist/bin/deployment/master-deploy.js +0 -1376
- package/dist/bin/deployment/modular-enterprise-deploy.js +0 -466
- package/dist/bin/deployment/modules/DeploymentConfiguration.js +0 -395
- package/dist/bin/deployment/modules/DeploymentOrchestrator.js +0 -492
- package/dist/bin/deployment/modules/EnvironmentManager.js +0 -517
- package/dist/bin/deployment/modules/MonitoringIntegration.js +0 -560
- package/dist/bin/deployment/modules/ValidationManager.js +0 -342
- package/dist/bin/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
- package/dist/bin/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
- package/dist/bin/deployment/orchestration/PortfolioOrchestrator.js +0 -273
- package/dist/bin/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
- package/dist/bin/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
- package/dist/bin/deployment/test-interactive-utils.js +0 -66
- package/dist/bin/portfolio/portfolio-manager.js +0 -487
- package/dist/bin/service-management/create-service.js +0 -122
- package/dist/bin/service-management/init-service.js +0 -79
- package/dist/config/customers.js +0 -623
- package/dist/config/domains.js +0 -186
- package/dist/config/index.js +0 -6
- package/dist/database/database-orchestrator.js +0 -795
- package/dist/database/index.js +0 -4
- package/dist/deployment/index.js +0 -11
- package/dist/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
- package/dist/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
- package/dist/deployment/orchestration/PortfolioOrchestrator.js +0 -273
- package/dist/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
- package/dist/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
- package/dist/deployment/orchestration/index.js +0 -17
- package/dist/deployment/rollback-manager.js +0 -36
- package/dist/deployment/wrangler-deployer.js +0 -640
- package/dist/handlers/GenericRouteHandler.js +0 -532
- package/dist/migration/MigrationAdapters.js +0 -562
- package/dist/modules/ModuleManager.js +0 -668
- package/dist/modules/security.js +0 -96
- package/dist/orchestration/cross-domain-coordinator.js +0 -1083
- package/dist/orchestration/index.js +0 -5
- package/dist/orchestration/modules/DeploymentCoordinator.js +0 -368
- package/dist/orchestration/modules/DomainResolver.js +0 -198
- package/dist/orchestration/modules/StateManager.js +0 -332
- package/dist/orchestration/multi-domain-orchestrator.js +0 -724
- package/dist/routing/EnhancedRouter.js +0 -158
- package/dist/schema/SchemaManager.js +0 -778
- package/dist/service-management/ConfirmationEngine.js +0 -412
- package/dist/service-management/ErrorTracker.js +0 -299
- package/dist/service-management/GenerationEngine.js +0 -447
- package/dist/service-management/InputCollector.js +0 -619
- package/dist/service-management/ServiceCreator.js +0 -265
- package/dist/service-management/ServiceInitializer.js +0 -453
- package/dist/service-management/ServiceOrchestrator.js +0 -633
- package/dist/service-management/generators/BaseGenerator.js +0 -233
- package/dist/service-management/generators/GeneratorRegistry.js +0 -254
- package/dist/service-management/generators/cicd/CiWorkflowGenerator.js +0 -87
- package/dist/service-management/generators/cicd/DeployWorkflowGenerator.js +0 -106
- package/dist/service-management/generators/code/ServiceHandlersGenerator.js +0 -235
- package/dist/service-management/generators/code/ServiceMiddlewareGenerator.js +0 -116
- package/dist/service-management/generators/code/ServiceUtilsGenerator.js +0 -246
- package/dist/service-management/generators/code/WorkerIndexGenerator.js +0 -143
- package/dist/service-management/generators/config/DevelopmentEnvGenerator.js +0 -101
- package/dist/service-management/generators/config/DomainsConfigGenerator.js +0 -175
- package/dist/service-management/generators/config/EnvExampleGenerator.js +0 -178
- package/dist/service-management/generators/config/ProductionEnvGenerator.js +0 -97
- package/dist/service-management/generators/config/StagingEnvGenerator.js +0 -97
- package/dist/service-management/generators/config/WranglerTomlGenerator.js +0 -238
- package/dist/service-management/generators/core/PackageJsonGenerator.js +0 -243
- package/dist/service-management/generators/core/SiteConfigGenerator.js +0 -115
- package/dist/service-management/generators/documentation/ApiDocsGenerator.js +0 -331
- package/dist/service-management/generators/documentation/ConfigurationDocsGenerator.js +0 -294
- package/dist/service-management/generators/documentation/DeploymentDocsGenerator.js +0 -244
- package/dist/service-management/generators/documentation/ReadmeGenerator.js +0 -196
- package/dist/service-management/generators/schemas/ServiceSchemaGenerator.js +0 -190
- package/dist/service-management/generators/scripts/DeployScriptGenerator.js +0 -123
- package/dist/service-management/generators/scripts/HealthCheckScriptGenerator.js +0 -101
- package/dist/service-management/generators/scripts/SetupScriptGenerator.js +0 -88
- package/dist/service-management/generators/service-types/StaticSiteGenerator.js +0 -342
- package/dist/service-management/generators/testing/EslintConfigGenerator.js +0 -85
- package/dist/service-management/generators/testing/IntegrationTestsGenerator.js +0 -237
- package/dist/service-management/generators/testing/JestConfigGenerator.js +0 -72
- package/dist/service-management/generators/testing/UnitTestsGenerator.js +0 -277
- package/dist/service-management/generators/tooling/DockerComposeGenerator.js +0 -71
- package/dist/service-management/generators/tooling/GitignoreGenerator.js +0 -143
- package/dist/service-management/generators/utils/FileWriter.js +0 -179
- package/dist/service-management/generators/utils/PathResolver.js +0 -157
- package/dist/service-management/generators/utils/ServiceManifestGenerator.js +0 -111
- package/dist/service-management/generators/utils/TemplateEngine.js +0 -185
- package/dist/service-management/generators/utils/index.js +0 -18
- package/dist/service-management/handlers/ConfirmationHandler.js +0 -71
- package/dist/service-management/handlers/GenerationHandler.js +0 -80
- package/dist/service-management/handlers/InputHandler.js +0 -59
- package/dist/service-management/handlers/ValidationHandler.js +0 -203
- package/dist/service-management/index.js +0 -14
- package/dist/service-management/routing/DomainRouteMapper.js +0 -311
- package/dist/service-management/routing/RouteGenerator.js +0 -266
- package/dist/service-management/routing/WranglerRoutesBuilder.js +0 -273
- package/dist/service-management/routing/index.js +0 -14
- package/dist/service-management/services/DirectoryStructureService.js +0 -56
- package/dist/service-management/services/GenerationCoordinator.js +0 -208
- package/dist/service-management/services/GeneratorRegistry.js +0 -174
- package/dist/services/GenericDataService.js +0 -501
- package/dist/ui-structures/concepts/second-order-acquisition-strategy.md +0 -286
- package/dist/ui-structures/concepts/service-lifecycle-management.md +0 -150
- package/dist/ui-structures/concepts/service-manifest-guide.md +0 -309
- package/dist/ui-structures/concepts/three-tier-categorization-strategy.md +0 -231
- package/dist/ui-structures/creation/automated-generation-ui.json +0 -246
- package/dist/ui-structures/creation/core-inputs-ui.json +0 -217
- package/dist/ui-structures/creation/smart-confirmable-ui.json +0 -451
- package/dist/ui-structures/reference/absolutely-required-inputs.json +0 -315
- package/dist/ui-structures/reference/service-manifest-template.json +0 -342
- package/dist/version/VersionDetector.js +0 -723
- package/dist/worker/index.js +0 -4
- package/dist/worker/integration.js +0 -351
|
@@ -1,315 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"metadata": {
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Three-tier categorization of CLODO Framework inputs with service manifest generation",
|
|
5
|
-
"created": "2025-10-08",
|
|
6
|
-
"categories": {
|
|
7
|
-
"absolutelyRequired": 6,
|
|
8
|
-
"userConfirmable": 15,
|
|
9
|
-
"absolutelyGeneratable": 67
|
|
10
|
-
},
|
|
11
|
-
"totalInputs": 88,
|
|
12
|
-
"automationPotential": "76.1%"
|
|
13
|
-
},
|
|
14
|
-
"categories": {
|
|
15
|
-
"absolutelyRequired": {
|
|
16
|
-
"description": "Core inputs that cannot be derived or assumed - must be provided by user",
|
|
17
|
-
"count": 6,
|
|
18
|
-
"inputs": ["service-name", "environment", "domain-name", "service-type", "customer-name", "cloudflare-api-token"],
|
|
19
|
-
"collectionOrder": "Logical sequence: fundamental identifier → environment context → domain scope → architecture type → customer context → technical access"
|
|
20
|
-
},
|
|
21
|
-
"userConfirmable": {
|
|
22
|
-
"description": "Derived inputs that can be auto-generated but should be presented for user review, confirmation, or customization",
|
|
23
|
-
"count": 15,
|
|
24
|
-
"rationale": "Users want flexibility to customize branding, URLs, descriptions, and configuration preferences",
|
|
25
|
-
"inputs": [
|
|
26
|
-
"display-name", "description", "version", "author",
|
|
27
|
-
"production-url", "staging-url", "development-url",
|
|
28
|
-
"service-directory", "database-name", "worker-name",
|
|
29
|
-
"log-level", "cors-policy", "env-prefix"
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"absolutelyGeneratable": {
|
|
33
|
-
"description": "Inputs that can be fully automated through discovery, API calls, or strict conventions",
|
|
34
|
-
"count": 66,
|
|
35
|
-
"automationMethods": ["file-discovery", "api-resolution", "convention-based", "context-inference"],
|
|
36
|
-
"inputs": [
|
|
37
|
-
"config-file-paths", "cloudflare-account-id", "cloudflare-zone-id",
|
|
38
|
-
"d1-database-id", "deployment-url", "customer-id", "customer-config-path",
|
|
39
|
-
"service-template", "deployment-strategy", "monitoring-config",
|
|
40
|
-
"security-policies", "resource-limits", "debug-mode", "node-env",
|
|
41
|
-
"repository-info", "branch-info", "commit-hash", "build-timestamps",
|
|
42
|
-
"dependency-versions", "environment-variables", "file-permissions",
|
|
43
|
-
"cache-settings", "backup-configurations", "health-check-endpoints"
|
|
44
|
-
]
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"absolutelyRequiredInputs": {
|
|
48
|
-
"service-name": {
|
|
49
|
-
"description": "The fundamental service identifier",
|
|
50
|
-
"type": "string",
|
|
51
|
-
"required": true,
|
|
52
|
-
"collectionOrder": 1,
|
|
53
|
-
"validation": {
|
|
54
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
55
|
-
"minLength": 3,
|
|
56
|
-
"maxLength": 50
|
|
57
|
-
},
|
|
58
|
-
"examples": ["user-service", "data-processor", "api-gateway"],
|
|
59
|
-
"userConfirmableDerivatives": 7,
|
|
60
|
-
"absolutelyGeneratableDerivatives": 12
|
|
61
|
-
},
|
|
62
|
-
"domain-name": {
|
|
63
|
-
"description": "Primary domain for service operations",
|
|
64
|
-
"type": "string",
|
|
65
|
-
"required": true,
|
|
66
|
-
"collectionOrder": 3,
|
|
67
|
-
"validation": {
|
|
68
|
-
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9-\\.]*\\.[a-zA-Z]{2,}$",
|
|
69
|
-
"minLength": 4,
|
|
70
|
-
"maxLength": 253
|
|
71
|
-
},
|
|
72
|
-
"examples": ["mycompany.com", "api.example.org", "staging.internal"],
|
|
73
|
-
"userConfirmableDerivatives": 6,
|
|
74
|
-
"absolutelyGeneratableDerivatives": 8
|
|
75
|
-
},
|
|
76
|
-
"environment": {
|
|
77
|
-
"description": "Deployment target environment",
|
|
78
|
-
"type": "string",
|
|
79
|
-
"required": true,
|
|
80
|
-
"collectionOrder": 2,
|
|
81
|
-
"allowedValues": ["development", "staging", "production"],
|
|
82
|
-
"default": "development",
|
|
83
|
-
"validation": {
|
|
84
|
-
"enum": ["development", "staging", "production"]
|
|
85
|
-
},
|
|
86
|
-
"userConfirmableDerivatives": 5,
|
|
87
|
-
"absolutelyGeneratableDerivatives": 15
|
|
88
|
-
},
|
|
89
|
-
"cloudflare-api-token": {
|
|
90
|
-
"description": "Cloudflare API token for infrastructure management",
|
|
91
|
-
"type": "string",
|
|
92
|
-
"required": "contextual",
|
|
93
|
-
"collectionOrder": 6,
|
|
94
|
-
"context": "when not using environment variables for credentials",
|
|
95
|
-
"validation": {
|
|
96
|
-
"pattern": "^[A-Za-z0-9_-]{40,}$",
|
|
97
|
-
"minLength": 40
|
|
98
|
-
},
|
|
99
|
-
"userConfirmableDerivatives": 2,
|
|
100
|
-
"absolutelyGeneratableDerivatives": 8
|
|
101
|
-
},
|
|
102
|
-
"customer-name": {
|
|
103
|
-
"description": "Customer identifier for multi-tenant operations",
|
|
104
|
-
"type": "string",
|
|
105
|
-
"required": "contextual",
|
|
106
|
-
"collectionOrder": 5,
|
|
107
|
-
"context": "when deploying customer-specific services",
|
|
108
|
-
"validation": {
|
|
109
|
-
"pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$",
|
|
110
|
-
"minLength": 2,
|
|
111
|
-
"maxLength": 30
|
|
112
|
-
},
|
|
113
|
-
"examples": ["acme-corp", "tech-startup", "enterprise-client"],
|
|
114
|
-
"userConfirmableDerivatives": 3,
|
|
115
|
-
"absolutelyGeneratableDerivatives": 6
|
|
116
|
-
},
|
|
117
|
-
"service-type": {
|
|
118
|
-
"description": "Service architecture pattern",
|
|
119
|
-
"type": "string",
|
|
120
|
-
"required": "contextual",
|
|
121
|
-
"collectionOrder": 4,
|
|
122
|
-
"context": "when not using generic service template",
|
|
123
|
-
"allowedValues": ["api", "worker", "database", "hybrid", "generic"],
|
|
124
|
-
"default": "generic",
|
|
125
|
-
"validation": {
|
|
126
|
-
"enum": ["api", "worker", "database", "hybrid", "generic"]
|
|
127
|
-
},
|
|
128
|
-
"userConfirmableDerivatives": 4,
|
|
129
|
-
"absolutelyGeneratableDerivatives": 17
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
"userConfirmableDerivatives": {
|
|
133
|
-
"description": "Inputs that should be auto-generated but presented for user confirmation/customization",
|
|
134
|
-
"count": 15,
|
|
135
|
-
"interaction": "show generated value, allow edit, require confirmation",
|
|
136
|
-
"rules": {
|
|
137
|
-
"display-name": {
|
|
138
|
-
"logic": "title-case conversion of service-name",
|
|
139
|
-
"example": "user-service → User Service",
|
|
140
|
-
"customization": "users may want custom branding"
|
|
141
|
-
},
|
|
142
|
-
"description": {
|
|
143
|
-
"logic": "template: 'A {service-type} service built with CLODO Framework'",
|
|
144
|
-
"example": "A api service built with CLODO Framework",
|
|
145
|
-
"customization": "users may want specific descriptions"
|
|
146
|
-
},
|
|
147
|
-
"version": {
|
|
148
|
-
"logic": "read from package.json or default to 1.0.0",
|
|
149
|
-
"fallback": "1.0.0",
|
|
150
|
-
"customization": "users may want to set specific versions"
|
|
151
|
-
},
|
|
152
|
-
"author": {
|
|
153
|
-
"logic": "process.env.USER or git config user.name",
|
|
154
|
-
"fallback": "CLODO Framework",
|
|
155
|
-
"customization": "users may want to specify team/organization"
|
|
156
|
-
},
|
|
157
|
-
"production-url": {
|
|
158
|
-
"logic": "api.{domain-name}",
|
|
159
|
-
"example": "api.mycompany.com",
|
|
160
|
-
"customization": "users may have specific subdomain preferences"
|
|
161
|
-
},
|
|
162
|
-
"staging-url": {
|
|
163
|
-
"logic": "staging-api.{domain-name}",
|
|
164
|
-
"example": "staging-api.mycompany.com",
|
|
165
|
-
"customization": "users may want different staging patterns"
|
|
166
|
-
},
|
|
167
|
-
"development-url": {
|
|
168
|
-
"logic": "dev-api.{domain-name}",
|
|
169
|
-
"example": "dev-api.mycompany.com",
|
|
170
|
-
"customization": "users may want different dev patterns"
|
|
171
|
-
},
|
|
172
|
-
"service-directory": {
|
|
173
|
-
"logic": "./services/{service-name}",
|
|
174
|
-
"example": "./services/user-service",
|
|
175
|
-
"customization": "users may have different directory structures"
|
|
176
|
-
},
|
|
177
|
-
"database-name": {
|
|
178
|
-
"logic": "{service-name}-db",
|
|
179
|
-
"example": "user-service-db",
|
|
180
|
-
"customization": "users may want custom database naming"
|
|
181
|
-
},
|
|
182
|
-
"worker-name": {
|
|
183
|
-
"logic": "{service-name}-worker",
|
|
184
|
-
"example": "user-service-worker",
|
|
185
|
-
"customization": "users may want custom worker naming"
|
|
186
|
-
},
|
|
187
|
-
"log-level": {
|
|
188
|
-
"logic": "environment-based default (production: warn, staging: info, development: debug)",
|
|
189
|
-
"customization": "users may want different log verbosity"
|
|
190
|
-
},
|
|
191
|
-
"cors-policy": {
|
|
192
|
-
"logic": "environment-based (production: restrict to domain, development: allow all)",
|
|
193
|
-
"customization": "users may have specific CORS requirements"
|
|
194
|
-
},
|
|
195
|
-
"env-prefix": {
|
|
196
|
-
"logic": "environment-based (PROD_, STAGING_, DEV_)",
|
|
197
|
-
"customization": "users may want different prefixes"
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
"absolutelyGeneratableDerivatives": {
|
|
202
|
-
"description": "Inputs that can be fully automated without user interaction",
|
|
203
|
-
"count": 66,
|
|
204
|
-
"interaction": "generate automatically, no user confirmation needed",
|
|
205
|
-
"rules": {
|
|
206
|
-
"config-file-paths": {
|
|
207
|
-
"logic": "file system discovery (find package.json, wrangler.toml, etc.)",
|
|
208
|
-
"automation": "recursive search with fallbacks"
|
|
209
|
-
},
|
|
210
|
-
"cloudflare-account-id": {
|
|
211
|
-
"logic": "API call using cloudflare-api-token",
|
|
212
|
-
"automation": "Cloudflare API resolution"
|
|
213
|
-
},
|
|
214
|
-
"cloudflare-zone-id": {
|
|
215
|
-
"logic": "API call using domain-name + cloudflare-api-token",
|
|
216
|
-
"automation": "Cloudflare API resolution"
|
|
217
|
-
},
|
|
218
|
-
"d1-database-id": {
|
|
219
|
-
"logic": "API call to list D1 databases matching service-name",
|
|
220
|
-
"automation": "Cloudflare API resolution"
|
|
221
|
-
},
|
|
222
|
-
"deployment-url": {
|
|
223
|
-
"logic": "construct from cloudflare-zone-id",
|
|
224
|
-
"automation": "URL construction"
|
|
225
|
-
},
|
|
226
|
-
"customer-id": {
|
|
227
|
-
"logic": "lookup from customer database using customer-name",
|
|
228
|
-
"automation": "database lookup"
|
|
229
|
-
},
|
|
230
|
-
"customer-config-path": {
|
|
231
|
-
"logic": "./customers/{customer-name}/config.json",
|
|
232
|
-
"automation": "path construction"
|
|
233
|
-
},
|
|
234
|
-
"service-template": {
|
|
235
|
-
"logic": "select template based on service-type",
|
|
236
|
-
"automation": "template selection"
|
|
237
|
-
},
|
|
238
|
-
"deployment-strategy": {
|
|
239
|
-
"logic": "service-type + environment based rules",
|
|
240
|
-
"automation": "rule-based selection"
|
|
241
|
-
},
|
|
242
|
-
"monitoring-config": {
|
|
243
|
-
"logic": "service-type templates with environment overrides",
|
|
244
|
-
"automation": "template application"
|
|
245
|
-
},
|
|
246
|
-
"security-policies": {
|
|
247
|
-
"logic": "environment + service-type security profiles",
|
|
248
|
-
"automation": "policy application"
|
|
249
|
-
},
|
|
250
|
-
"resource-limits": {
|
|
251
|
-
"logic": "service-type resource templates",
|
|
252
|
-
"automation": "resource allocation"
|
|
253
|
-
},
|
|
254
|
-
"debug-mode": {
|
|
255
|
-
"logic": "environment === 'development'",
|
|
256
|
-
"automation": "boolean logic"
|
|
257
|
-
},
|
|
258
|
-
"node-env": {
|
|
259
|
-
"logic": "direct mapping from environment",
|
|
260
|
-
"automation": "value mapping"
|
|
261
|
-
},
|
|
262
|
-
"repository-info": {
|
|
263
|
-
"logic": "git config remote.origin.url",
|
|
264
|
-
"automation": "git command execution"
|
|
265
|
-
},
|
|
266
|
-
"branch-info": {
|
|
267
|
-
"logic": "git rev-parse --abbrev-ref HEAD",
|
|
268
|
-
"automation": "git command execution"
|
|
269
|
-
},
|
|
270
|
-
"commit-hash": {
|
|
271
|
-
"logic": "git rev-parse HEAD",
|
|
272
|
-
"automation": "git command execution"
|
|
273
|
-
},
|
|
274
|
-
"build-timestamps": {
|
|
275
|
-
"logic": "new Date().toISOString()",
|
|
276
|
-
"automation": "timestamp generation"
|
|
277
|
-
},
|
|
278
|
-
"dependency-versions": {
|
|
279
|
-
"logic": "read from package.json dependencies",
|
|
280
|
-
"automation": "file parsing"
|
|
281
|
-
},
|
|
282
|
-
"environment-variables": {
|
|
283
|
-
"logic": "construct from all inputs using naming conventions",
|
|
284
|
-
"automation": "variable generation"
|
|
285
|
-
},
|
|
286
|
-
"file-permissions": {
|
|
287
|
-
"logic": "service-type based permission templates",
|
|
288
|
-
"automation": "permission assignment"
|
|
289
|
-
},
|
|
290
|
-
"cache-settings": {
|
|
291
|
-
"logic": "environment + service-type cache profiles",
|
|
292
|
-
"automation": "cache configuration"
|
|
293
|
-
},
|
|
294
|
-
"backup-configurations": {
|
|
295
|
-
"logic": "service-type + environment backup policies",
|
|
296
|
-
"automation": "backup setup"
|
|
297
|
-
},
|
|
298
|
-
"health-check-endpoints": {
|
|
299
|
-
"logic": "service-type standard health check patterns",
|
|
300
|
-
"automation": "endpoint generation"
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
"acquisitionStrategy": {
|
|
305
|
-
"primary": "interactive prompts for core inputs only",
|
|
306
|
-
"secondary": "environment variable fallbacks",
|
|
307
|
-
"tertiary": "file-based configuration discovery",
|
|
308
|
-
"fallback": "sensible defaults and auto-generation"
|
|
309
|
-
},
|
|
310
|
-
"validationStrategy": {
|
|
311
|
-
"preValidation": "validate core inputs before derivation",
|
|
312
|
-
"crossValidation": "ensure derived values are consistent",
|
|
313
|
-
"postValidation": "test derived configurations against schemas"
|
|
314
|
-
}
|
|
315
|
-
}
|
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"template": {
|
|
3
|
-
"name": "service-manifest",
|
|
4
|
-
"description": "Comprehensive service configuration and history file generated during CLODO Framework service creation",
|
|
5
|
-
"version": "1.0.0",
|
|
6
|
-
"purpose": "Complete audit trail, service consumption, and rectification support"
|
|
7
|
-
},
|
|
8
|
-
"metadata": {
|
|
9
|
-
"serviceId": "auto-generated-uuid",
|
|
10
|
-
"createdAt": "2025-10-08T10:30:00Z",
|
|
11
|
-
"createdBy": "CLODO Framework v2.0.0",
|
|
12
|
-
"creationMethod": "three-phase-collection",
|
|
13
|
-
"frameworkVersion": "2.0.0",
|
|
14
|
-
"nodeVersion": "18.17.0",
|
|
15
|
-
"platform": "windows",
|
|
16
|
-
"workingDirectory": "C:\\Users\\Admin\\Documents\\coding\\tamyla\\clodo-framework"
|
|
17
|
-
},
|
|
18
|
-
"coreInputs": {
|
|
19
|
-
"description": "The 6 absolutely required inputs provided by the user",
|
|
20
|
-
"providedAt": "2025-10-08T10:25:00Z",
|
|
21
|
-
"validationStatus": "passed",
|
|
22
|
-
"inputs": {
|
|
23
|
-
"service-name": "user-service",
|
|
24
|
-
"environment": "development",
|
|
25
|
-
"domain-name": "mycompany.com",
|
|
26
|
-
"service-type": "api",
|
|
27
|
-
"customer-name": null,
|
|
28
|
-
"cloudflare-api-token": null
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"userConfirmableInputs": {
|
|
32
|
-
"description": "The 15 user-confirmable inputs with user's final decisions",
|
|
33
|
-
"confirmedAt": "2025-10-08T10:27:00Z",
|
|
34
|
-
"customizations": 3,
|
|
35
|
-
"acceptances": 12,
|
|
36
|
-
"inputs": {
|
|
37
|
-
"display-name": "User Service",
|
|
38
|
-
"description": "A api service built with CLODO Framework for user management",
|
|
39
|
-
"version": "1.0.0",
|
|
40
|
-
"author": "CLODO Framework",
|
|
41
|
-
"production-url": "api.mycompany.com",
|
|
42
|
-
"staging-url": "staging-api.mycompany.com",
|
|
43
|
-
"development-url": "dev-api.mycompany.com",
|
|
44
|
-
"service-directory": "./services/user-service",
|
|
45
|
-
"database-name": "user-service-db",
|
|
46
|
-
"worker-name": "user-service-worker",
|
|
47
|
-
"log-level": "debug",
|
|
48
|
-
"cors-policy": "*",
|
|
49
|
-
"env-prefix": "DEV_"
|
|
50
|
-
},
|
|
51
|
-
"customizationDetails": [
|
|
52
|
-
{
|
|
53
|
-
"field": "description",
|
|
54
|
-
"action": "customized",
|
|
55
|
-
"original": "A api service built with CLODO Framework",
|
|
56
|
-
"final": "A api service built with CLODO Framework for user management",
|
|
57
|
-
"reason": "Added specific functionality description"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"field": "log-level",
|
|
61
|
-
"action": "customized",
|
|
62
|
-
"original": "debug",
|
|
63
|
-
"final": "debug",
|
|
64
|
-
"reason": "Confirmed development logging level"
|
|
65
|
-
}
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
"autoGeneratedInputs": {
|
|
69
|
-
"description": "The 66 absolutely generatable inputs created automatically",
|
|
70
|
-
"generatedAt": "2025-10-08T10:28:00Z",
|
|
71
|
-
"generationStatus": "completed",
|
|
72
|
-
"successCount": 66,
|
|
73
|
-
"errorCount": 0,
|
|
74
|
-
"categories": {
|
|
75
|
-
"fileDiscovery": {
|
|
76
|
-
"count": 8,
|
|
77
|
-
"status": "completed",
|
|
78
|
-
"inputs": {
|
|
79
|
-
"packageJsonPath": "./package.json",
|
|
80
|
-
"wranglerTomlPath": "./wrangler.toml",
|
|
81
|
-
"tsconfigJsonPath": "./tsconfig.json",
|
|
82
|
-
"eslintConfigPath": "./eslint.config.js",
|
|
83
|
-
"jestConfigPath": "./jest.config.js",
|
|
84
|
-
"babelConfigPath": "./babel.config.js",
|
|
85
|
-
"dockerfilePath": "./Dockerfile",
|
|
86
|
-
"readmePath": "./README.md"
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
"apiResolution": {
|
|
90
|
-
"count": 12,
|
|
91
|
-
"status": "completed",
|
|
92
|
-
"inputs": {
|
|
93
|
-
"cloudflareAccountId": "1234567890abcdef",
|
|
94
|
-
"cloudflareZoneId": "fedcba0987654321",
|
|
95
|
-
"d1DatabaseId": "user-service-db-uuid",
|
|
96
|
-
"workerDeploymentUrl": "https://user-service.mycompany.com",
|
|
97
|
-
"gitRepositoryUrl": "https://github.com/tamylaa/clodo-framework",
|
|
98
|
-
"gitBranch": "master",
|
|
99
|
-
"gitCommitHash": "a1b2c3d4e5f6",
|
|
100
|
-
"npmRegistry": "https://registry.npmjs.org",
|
|
101
|
-
"cloudflareApiVersion": "v4",
|
|
102
|
-
"domainRegistrar": "namecheap",
|
|
103
|
-
"sslCertificateExpiry": "2026-10-08",
|
|
104
|
-
"dnsRecords": ["A", "CNAME", "TXT"]
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"conventionBased": {
|
|
108
|
-
"count": 28,
|
|
109
|
-
"status": "completed",
|
|
110
|
-
"inputs": {
|
|
111
|
-
"serviceTemplate": "api-template-v2",
|
|
112
|
-
"deploymentStrategy": "cloudflare-worker-d1",
|
|
113
|
-
"monitoringConfig": "basic-api-monitoring",
|
|
114
|
-
"securityPolicies": "development-security",
|
|
115
|
-
"resourceLimits": "small-service-limits",
|
|
116
|
-
"environmentVariables": {
|
|
117
|
-
"DEV_DATABASE_URL": "postgresql://localhost:5432/user_service_dev",
|
|
118
|
-
"DEV_REDIS_URL": "redis://localhost:6379",
|
|
119
|
-
"DEV_JWT_SECRET": "dev-secret-key",
|
|
120
|
-
"DEV_API_PORT": "3000"
|
|
121
|
-
},
|
|
122
|
-
"filePermissions": "755",
|
|
123
|
-
"cacheSettings": "development-cache",
|
|
124
|
-
"backupConfigurations": "daily-backup",
|
|
125
|
-
"healthCheckEndpoints": ["/health", "/ready", "/metrics"],
|
|
126
|
-
"middlewareStack": ["cors", "helmet", "compression", "logging"],
|
|
127
|
-
"errorHandling": "development-error-handling",
|
|
128
|
-
"rateLimiting": "development-rate-limits",
|
|
129
|
-
"apiVersioning": "header-based",
|
|
130
|
-
"documentationFormat": "openapi-3.0",
|
|
131
|
-
"testingFramework": "jest",
|
|
132
|
-
"codeCoverage": "80%",
|
|
133
|
-
"lintingRules": "clodo-standard",
|
|
134
|
-
"buildTool": "esbuild",
|
|
135
|
-
"packageManager": "npm",
|
|
136
|
-
"ciCdPipeline": "github-actions",
|
|
137
|
-
"deploymentTarget": "cloudflare-pages",
|
|
138
|
-
"rollbackStrategy": "immediate-rollback",
|
|
139
|
-
"scalingStrategy": "manual-scaling",
|
|
140
|
-
"costOptimization": "development-optimization"
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
"contextInference": {
|
|
144
|
-
"count": 18,
|
|
145
|
-
"status": "completed",
|
|
146
|
-
"inputs": {
|
|
147
|
-
"debugMode": true,
|
|
148
|
-
"nodeEnv": "development",
|
|
149
|
-
"logFormat": "json",
|
|
150
|
-
"timestampFormat": "ISO-8601",
|
|
151
|
-
"timezone": "UTC",
|
|
152
|
-
"locale": "en-US",
|
|
153
|
-
"currency": "USD",
|
|
154
|
-
"dateFormat": "YYYY-MM-DD",
|
|
155
|
-
"timeFormat": "HH:mm:ss",
|
|
156
|
-
"numberFormat": "en-US",
|
|
157
|
-
"errorReporting": "console-only",
|
|
158
|
-
"performanceMonitoring": "basic",
|
|
159
|
-
"memoryLimit": "512MB",
|
|
160
|
-
"cpuLimit": "0.5",
|
|
161
|
-
"networkTimeout": "30s",
|
|
162
|
-
"retryAttempts": 3,
|
|
163
|
-
"circuitBreaker": "disabled",
|
|
164
|
-
"featureFlags": {}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
"serviceConfiguration": {
|
|
170
|
-
"description": "Final computed configuration used to create the service",
|
|
171
|
-
"computedAt": "2025-10-08T10:28:00Z",
|
|
172
|
-
"config": {
|
|
173
|
-
"service": {
|
|
174
|
-
"name": "user-service",
|
|
175
|
-
"displayName": "User Service",
|
|
176
|
-
"description": "A api service built with CLODO Framework for user management",
|
|
177
|
-
"version": "1.0.0",
|
|
178
|
-
"type": "api",
|
|
179
|
-
"environment": "development",
|
|
180
|
-
"author": "CLODO Framework"
|
|
181
|
-
},
|
|
182
|
-
"networking": {
|
|
183
|
-
"domain": "mycompany.com",
|
|
184
|
-
"urls": {
|
|
185
|
-
"production": "api.mycompany.com",
|
|
186
|
-
"staging": "staging-api.mycompany.com",
|
|
187
|
-
"development": "dev-api.mycompany.com"
|
|
188
|
-
},
|
|
189
|
-
"corsPolicy": "*",
|
|
190
|
-
"ssl": true,
|
|
191
|
-
"http2": true
|
|
192
|
-
},
|
|
193
|
-
"infrastructure": {
|
|
194
|
-
"provider": "cloudflare",
|
|
195
|
-
"worker": {
|
|
196
|
-
"name": "user-service-worker",
|
|
197
|
-
"runtime": "cloudflare-worker",
|
|
198
|
-
"memory": "128MB",
|
|
199
|
-
"cpu": "100ms"
|
|
200
|
-
},
|
|
201
|
-
"database": {
|
|
202
|
-
"type": "D1",
|
|
203
|
-
"name": "user-service-db",
|
|
204
|
-
"location": "WEUR"
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
"deployment": {
|
|
208
|
-
"strategy": "cloudflare-worker-d1",
|
|
209
|
-
"directory": "./services/user-service",
|
|
210
|
-
"buildCommand": "npm run build",
|
|
211
|
-
"startCommand": "npm run start",
|
|
212
|
-
"healthCheck": "/health"
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
"fileManifest": {
|
|
217
|
-
"description": "All files created/modified during service generation",
|
|
218
|
-
"createdAt": "2025-10-08T10:28:00Z",
|
|
219
|
-
"files": {
|
|
220
|
-
"created": [
|
|
221
|
-
"./services/user-service/package.json",
|
|
222
|
-
"./services/user-service/src/index.js",
|
|
223
|
-
"./services/user-service/src/routes.js",
|
|
224
|
-
"./services/user-service/src/middleware.js",
|
|
225
|
-
"./services/user-service/test/unit.spec.js",
|
|
226
|
-
"./services/user-service/test/integration.spec.js",
|
|
227
|
-
"./services/user-service/README.md",
|
|
228
|
-
"./services/user-service/.env.example",
|
|
229
|
-
"./services/user-service/wrangler.toml",
|
|
230
|
-
"./services/user-service/jest.config.js",
|
|
231
|
-
"./services/user-service/eslint.config.js"
|
|
232
|
-
],
|
|
233
|
-
"modified": [
|
|
234
|
-
"./package.json",
|
|
235
|
-
"./wrangler.toml"
|
|
236
|
-
],
|
|
237
|
-
"templates": [
|
|
238
|
-
"api-template-v2",
|
|
239
|
-
"cloudflare-worker-template",
|
|
240
|
-
"d1-database-template",
|
|
241
|
-
"jest-config-template",
|
|
242
|
-
"eslint-config-template"
|
|
243
|
-
]
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
"relationships": {
|
|
247
|
-
"description": "Relationships to other services and resources",
|
|
248
|
-
"dependsOn": [],
|
|
249
|
-
"usedBy": [],
|
|
250
|
-
"shares": {
|
|
251
|
-
"database": "user-service-db",
|
|
252
|
-
"domain": "mycompany.com"
|
|
253
|
-
},
|
|
254
|
-
"relatedServices": []
|
|
255
|
-
},
|
|
256
|
-
"auditTrail": {
|
|
257
|
-
"description": "Complete history of service creation and modifications",
|
|
258
|
-
"entries": [
|
|
259
|
-
{
|
|
260
|
-
"timestamp": "2025-10-08T10:25:00Z",
|
|
261
|
-
"action": "core-inputs-collected",
|
|
262
|
-
"actor": "user",
|
|
263
|
-
"details": "Collected 6 core inputs via interactive prompts"
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
"timestamp": "2025-10-08T10:27:00Z",
|
|
267
|
-
"action": "inputs-confirmed",
|
|
268
|
-
"actor": "user",
|
|
269
|
-
"details": "User confirmed 12 defaults and customized 3 inputs"
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
"timestamp": "2025-10-08T10:28:00Z",
|
|
273
|
-
"action": "service-generated",
|
|
274
|
-
"actor": "CLODO Framework",
|
|
275
|
-
"details": "Successfully generated service with 66 auto-generated configurations"
|
|
276
|
-
}
|
|
277
|
-
]
|
|
278
|
-
},
|
|
279
|
-
"consumption": {
|
|
280
|
-
"description": "Information for other tools/services to consume this service",
|
|
281
|
-
"api": {
|
|
282
|
-
"baseUrl": "https://dev-api.mycompany.com",
|
|
283
|
-
"documentation": "./services/user-service/README.md",
|
|
284
|
-
"openapiSpec": "./services/user-service/openapi.yaml",
|
|
285
|
-
"healthCheck": "https://dev-api.mycompany.com/health"
|
|
286
|
-
},
|
|
287
|
-
"dependencies": {
|
|
288
|
-
"runtime": ["@cloudflare/workers-types", "hono", "zod"],
|
|
289
|
-
"development": ["jest", "@types/jest", "eslint"]
|
|
290
|
-
},
|
|
291
|
-
"environmentVariables": [
|
|
292
|
-
"DEV_DATABASE_URL",
|
|
293
|
-
"DEV_REDIS_URL",
|
|
294
|
-
"DEV_JWT_SECRET",
|
|
295
|
-
"DEV_API_PORT"
|
|
296
|
-
],
|
|
297
|
-
"ports": [3000],
|
|
298
|
-
"commands": {
|
|
299
|
-
"install": "npm install",
|
|
300
|
-
"build": "npm run build",
|
|
301
|
-
"test": "npm test",
|
|
302
|
-
"start": "npm start",
|
|
303
|
-
"deploy": "npm run deploy"
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
"rectification": {
|
|
307
|
-
"description": "Information to help fix issues or recreate the service",
|
|
308
|
-
"troubleshooting": {
|
|
309
|
-
"commonIssues": [
|
|
310
|
-
"Database connection fails - check DEV_DATABASE_URL",
|
|
311
|
-
"Worker deployment fails - verify Cloudflare credentials",
|
|
312
|
-
"CORS errors - check cors-policy configuration"
|
|
313
|
-
],
|
|
314
|
-
"logs": "./logs/user-service/",
|
|
315
|
-
"debugMode": true,
|
|
316
|
-
"rollbackCommand": "npm run rollback"
|
|
317
|
-
},
|
|
318
|
-
"recreation": {
|
|
319
|
-
"command": "clodo recreate user-service --from-manifest",
|
|
320
|
-
"requiredInputs": "All inputs stored in this manifest",
|
|
321
|
-
"validationSteps": [
|
|
322
|
-
"Verify Cloudflare credentials",
|
|
323
|
-
"Check domain availability",
|
|
324
|
-
"Validate environment variables"
|
|
325
|
-
]
|
|
326
|
-
}
|
|
327
|
-
},
|
|
328
|
-
"validation": {
|
|
329
|
-
"description": "Validation results for the generated service",
|
|
330
|
-
"performedAt": "2025-10-08T10:29:00Z",
|
|
331
|
-
"overallStatus": "passed",
|
|
332
|
-
"checks": {
|
|
333
|
-
"configuration": "passed",
|
|
334
|
-
"dependencies": "passed",
|
|
335
|
-
"build": "passed",
|
|
336
|
-
"tests": "passed",
|
|
337
|
-
"deployment": "ready"
|
|
338
|
-
},
|
|
339
|
-
"warnings": [],
|
|
340
|
-
"errors": []
|
|
341
|
-
}
|
|
342
|
-
}
|