container-superposition 0.1.1 → 0.1.3

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.
Files changed (136) hide show
  1. package/README.md +206 -1
  2. package/dist/scripts/init.js +235 -179
  3. package/dist/scripts/init.js.map +1 -1
  4. package/dist/tool/commands/doctor.d.ts +15 -0
  5. package/dist/tool/commands/doctor.d.ts.map +1 -0
  6. package/dist/tool/commands/doctor.js +862 -0
  7. package/dist/tool/commands/doctor.js.map +1 -0
  8. package/dist/tool/commands/explain.d.ts +13 -0
  9. package/dist/tool/commands/explain.d.ts.map +1 -0
  10. package/dist/tool/commands/explain.js +211 -0
  11. package/dist/tool/commands/explain.js.map +1 -0
  12. package/dist/tool/commands/list.d.ts +16 -0
  13. package/dist/tool/commands/list.d.ts.map +1 -0
  14. package/dist/tool/commands/list.js +121 -0
  15. package/dist/tool/commands/list.js.map +1 -0
  16. package/dist/tool/commands/plan.d.ts +16 -0
  17. package/dist/tool/commands/plan.d.ts.map +1 -0
  18. package/dist/tool/commands/plan.js +329 -0
  19. package/dist/tool/commands/plan.js.map +1 -0
  20. package/dist/tool/questionnaire/composer.d.ts +6 -1
  21. package/dist/tool/questionnaire/composer.d.ts.map +1 -1
  22. package/dist/tool/questionnaire/composer.js +300 -202
  23. package/dist/tool/questionnaire/composer.js.map +1 -1
  24. package/dist/tool/readme/markdown-parser.d.ts.map +1 -1
  25. package/dist/tool/readme/markdown-parser.js.map +1 -1
  26. package/dist/tool/readme/readme-generator.d.ts.map +1 -1
  27. package/dist/tool/readme/readme-generator.js +11 -6
  28. package/dist/tool/readme/readme-generator.js.map +1 -1
  29. package/dist/tool/schema/deployment-targets.d.ts +77 -0
  30. package/dist/tool/schema/deployment-targets.d.ts.map +1 -0
  31. package/dist/tool/schema/deployment-targets.js +91 -0
  32. package/dist/tool/schema/deployment-targets.js.map +1 -0
  33. package/dist/tool/schema/manifest-migrations.d.ts +51 -0
  34. package/dist/tool/schema/manifest-migrations.d.ts.map +1 -0
  35. package/dist/tool/schema/manifest-migrations.js +159 -0
  36. package/dist/tool/schema/manifest-migrations.js.map +1 -0
  37. package/dist/tool/schema/overlay-loader.d.ts +1 -1
  38. package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
  39. package/dist/tool/schema/overlay-loader.js +42 -14
  40. package/dist/tool/schema/overlay-loader.js.map +1 -1
  41. package/dist/tool/schema/types.d.ts +44 -2
  42. package/dist/tool/schema/types.d.ts.map +1 -1
  43. package/dist/tool/utils/merge.d.ts +134 -0
  44. package/dist/tool/utils/merge.d.ts.map +1 -0
  45. package/dist/tool/utils/merge.js +277 -0
  46. package/dist/tool/utils/merge.js.map +1 -0
  47. package/dist/tool/utils/port-utils.d.ts +29 -0
  48. package/dist/tool/utils/port-utils.d.ts.map +1 -0
  49. package/dist/tool/utils/port-utils.js +128 -0
  50. package/dist/tool/utils/port-utils.js.map +1 -0
  51. package/dist/tool/utils/version.d.ts +9 -0
  52. package/dist/tool/utils/version.d.ts.map +1 -0
  53. package/dist/tool/utils/version.js +32 -0
  54. package/dist/tool/utils/version.js.map +1 -0
  55. package/docs/architecture.md +25 -21
  56. package/docs/deployment-targets.md +150 -0
  57. package/docs/discovery-commands.md +442 -0
  58. package/docs/merge-strategy.md +700 -0
  59. package/docs/minimal-and-editor.md +265 -0
  60. package/docs/overlay-imports.md +209 -0
  61. package/docs/overlay-manifest-refactoring.md +2 -2
  62. package/docs/overlay-metadata-archive.md +1 -1
  63. package/docs/overlays.md +91 -23
  64. package/docs/presets-architecture.md +3 -3
  65. package/docs/presets.md +1 -1
  66. package/docs/publishing.md +36 -35
  67. package/docs/team-workflow.md +540 -0
  68. package/overlays/.presets/data-engineering.yml +392 -0
  69. package/overlays/.presets/event-sourced-service.yml +262 -0
  70. package/overlays/.presets/frontend.yml +287 -0
  71. package/overlays/.presets/k8s-operator-dev.yml +462 -0
  72. package/overlays/.registry/README.md +1 -1
  73. package/overlays/.registry/deployment-targets.yml +54 -0
  74. package/overlays/.shared/README.md +43 -0
  75. package/overlays/.shared/compose/common-healthchecks.yml +38 -0
  76. package/overlays/.shared/otel/instrumentation.env +20 -0
  77. package/overlays/.shared/otel/otel-base-config.yaml +30 -0
  78. package/overlays/.shared/vscode/recommended-extensions.json +14 -0
  79. package/overlays/README.md +1 -1
  80. package/overlays/codex/overlay.yml +1 -0
  81. package/overlays/duckdb/README.md +274 -0
  82. package/overlays/duckdb/devcontainer.patch.json +10 -0
  83. package/overlays/duckdb/overlay.yml +17 -0
  84. package/overlays/duckdb/setup.sh +45 -0
  85. package/overlays/duckdb/verify.sh +32 -0
  86. package/overlays/git-helpers/overlay.yml +1 -0
  87. package/overlays/grafana/README.md +5 -5
  88. package/overlays/grafana/dashboard-provider.yml +1 -1
  89. package/overlays/grafana/docker-compose.yml +2 -2
  90. package/overlays/grafana/overlay.yml +6 -1
  91. package/overlays/jaeger/overlay.yml +16 -3
  92. package/overlays/jupyter/.env.example +6 -0
  93. package/overlays/jupyter/README.md +210 -0
  94. package/overlays/jupyter/devcontainer.patch.json +14 -0
  95. package/overlays/jupyter/docker-compose.yml +23 -0
  96. package/overlays/jupyter/overlay.yml +18 -0
  97. package/overlays/jupyter/verify.sh +35 -0
  98. package/overlays/kind/README.md +221 -0
  99. package/overlays/kind/devcontainer.patch.json +10 -0
  100. package/overlays/kind/overlay.yml +18 -0
  101. package/overlays/kind/setup.sh +43 -0
  102. package/overlays/kind/verify.sh +40 -0
  103. package/overlays/localstack/.env.example +6 -0
  104. package/overlays/localstack/README.md +188 -0
  105. package/overlays/localstack/devcontainer.patch.json +21 -0
  106. package/overlays/localstack/docker-compose.yml +25 -0
  107. package/overlays/localstack/overlay.yml +18 -0
  108. package/overlays/localstack/verify.sh +47 -0
  109. package/overlays/loki/overlay.yml +6 -1
  110. package/overlays/modern-cli-tools/overlay.yml +1 -0
  111. package/overlays/mongodb/overlay.yml +12 -2
  112. package/overlays/mysql/overlay.yml +12 -2
  113. package/overlays/nats/overlay.yml +12 -2
  114. package/overlays/openapi-tools/README.md +243 -0
  115. package/overlays/openapi-tools/devcontainer.patch.json +10 -0
  116. package/overlays/openapi-tools/overlay.yml +16 -0
  117. package/overlays/openapi-tools/setup.sh +45 -0
  118. package/overlays/openapi-tools/verify.sh +51 -0
  119. package/overlays/otel-collector/overlay.yml.example +26 -0
  120. package/overlays/postgres/overlay.yml +6 -1
  121. package/overlays/prometheus/overlay.yml +6 -1
  122. package/overlays/rabbitmq/overlay.yml +12 -2
  123. package/overlays/redis/overlay.yml +6 -1
  124. package/overlays/tilt/README.md +259 -0
  125. package/overlays/tilt/devcontainer.patch.json +17 -0
  126. package/overlays/tilt/overlay.yml +19 -0
  127. package/overlays/tilt/setup.sh +25 -0
  128. package/overlays/tilt/verify.sh +24 -0
  129. package/package.json +8 -6
  130. package/tool/README.md +12 -16
  131. package/tool/schema/overlay-manifest.schema.json +64 -4
  132. package/tool/schema/superposition-manifest.schema.json +104 -0
  133. /package/overlays/{presets → .presets}/docs-site.yml +0 -0
  134. /package/overlays/{presets → .presets}/fullstack.yml +0 -0
  135. /package/overlays/{presets → .presets}/microservice.yml +0 -0
  136. /package/overlays/{presets → .presets}/web-api.yml +0 -0
@@ -0,0 +1,47 @@
1
+ #!/bin/bash
2
+ # Verification script for LocalStack overlay
3
+ # Confirms LocalStack is running and accessible
4
+
5
+ set -e
6
+
7
+ echo "🔍 Verifying LocalStack overlay..."
8
+ echo ""
9
+
10
+ # Check if LocalStack service is running
11
+ echo "1️⃣ Checking LocalStack service..."
12
+ if command -v curl &> /dev/null; then
13
+ # Wait up to 30 seconds for LocalStack to be ready
14
+ LOCALSTACK_READY=false
15
+ for i in {1..30}; do
16
+ if curl -s http://localstack:4566/_localstack/health &> /dev/null; then
17
+ echo " ✅ LocalStack service is ready"
18
+ LOCALSTACK_READY=true
19
+ break
20
+ fi
21
+ sleep 1
22
+ done
23
+
24
+ if [ "$LOCALSTACK_READY" = false ]; then
25
+ echo " ❌ LocalStack service not ready after 30 seconds"
26
+ exit 1
27
+ fi
28
+ else
29
+ echo " ⚠️ curl not found, skipping service check"
30
+ fi
31
+
32
+ # Check LocalStack health
33
+ echo ""
34
+ echo "2️⃣ Checking LocalStack health..."
35
+ if command -v curl &> /dev/null; then
36
+ HEALTH=$(curl -s http://localstack:4566/_localstack/health)
37
+ if [ -n "$HEALTH" ]; then
38
+ echo " ✅ LocalStack health endpoint responding"
39
+ echo "$HEALTH" | head -3
40
+ else
41
+ echo " ❌ LocalStack health check failed"
42
+ exit 1
43
+ fi
44
+ fi
45
+
46
+ echo ""
47
+ echo "✅ LocalStack overlay verification complete"
@@ -13,5 +13,10 @@ tags:
13
13
  - logs
14
14
  - loki
15
15
  ports:
16
- - 3100
16
+ - port: 3100
17
+ service: loki
18
+ protocol: http
19
+ description: Loki HTTP API and query interface
20
+ path: /
21
+ onAutoForward: notify
17
22
  order: 1
@@ -11,3 +11,4 @@ tags:
11
11
  - cli
12
12
  - productivity
13
13
  ports: []
14
+ minimal: true
@@ -13,5 +13,15 @@ tags:
13
13
  - mongodb
14
14
  - document
15
15
  ports:
16
- - 27017
17
- - 8081
16
+ - port: 27017
17
+ service: mongodb
18
+ protocol: tcp
19
+ description: MongoDB database connection
20
+ onAutoForward: notify
21
+ connectionStringTemplate: 'mongodb://{mongo_initdb_root_username}:{mongo_initdb_root_password}@{host}:{port}/'
22
+ - port: 8081
23
+ service: mongo-express
24
+ protocol: http
25
+ description: Mongo Express web UI
26
+ path: /
27
+ onAutoForward: openBrowser
@@ -12,5 +12,15 @@ tags:
12
12
  - sql
13
13
  - mysql
14
14
  ports:
15
- - 3306
16
- - 8080
15
+ - port: 3306
16
+ service: mysql
17
+ protocol: tcp
18
+ description: MySQL database connection
19
+ onAutoForward: notify
20
+ connectionStringTemplate: 'mysql://{mysql_user}:{mysql_password}@{host}:{port}/{mysql_database}'
21
+ - port: 8080
22
+ service: phpmyadmin
23
+ protocol: http
24
+ description: phpMyAdmin web UI
25
+ path: /
26
+ onAutoForward: openBrowser
@@ -14,5 +14,15 @@ tags:
14
14
  - nats
15
15
  - jetstream
16
16
  ports:
17
- - 4222
18
- - 8222
17
+ - port: 4222
18
+ service: nats
19
+ protocol: tcp
20
+ description: NATS client connection
21
+ onAutoForward: notify
22
+ connectionStringTemplate: 'nats://{host}:{port}'
23
+ - port: 8222
24
+ service: nats
25
+ protocol: http
26
+ description: NATS monitoring/stats endpoint
27
+ path: /
28
+ onAutoForward: ignore
@@ -0,0 +1,243 @@
1
+ # OpenAPI Tools Overlay
2
+
3
+ OpenAPI/Swagger tooling for API development, documentation, and validation.
4
+
5
+ ## Features
6
+
7
+ - **swagger-cli** - OpenAPI/Swagger validation
8
+ - **spectral** - OpenAPI linting with customizable rules
9
+ - **redocly** - Documentation generation and API bundling
10
+ - **npm-based** - Easy to install and update
11
+
12
+ ## How It Works
13
+
14
+ This overlay installs OpenAPI development tools as global npm packages. These tools help you create, validate, lint, and document APIs using the OpenAPI Specification (formerly Swagger).
15
+
16
+ **Suggested overlays:**
17
+
18
+ - `nodejs` - Node.js runtime for running OpenAPI tools
19
+
20
+ ## Installation
21
+
22
+ OpenAPI tools are installed automatically during devcontainer creation via `setup.sh`:
23
+
24
+ - `@apidevtools/swagger-cli` - OpenAPI validation
25
+ - `@stoplight/spectral-cli` - OpenAPI linting
26
+ - `@redocly/cli` - Documentation and bundling
27
+
28
+ ## Common Commands
29
+
30
+ ### Validation
31
+
32
+ ```bash
33
+ # Validate OpenAPI specification
34
+ swagger-cli validate openapi.yaml
35
+
36
+ # Validate with detailed output
37
+ swagger-cli validate openapi.yaml --debug
38
+
39
+ # Bundle multiple files into one
40
+ swagger-cli bundle openapi.yaml --outfile bundled.yaml --type yaml
41
+ ```
42
+
43
+ ### Linting
44
+
45
+ ```bash
46
+ # Lint OpenAPI spec with spectral
47
+ spectral lint openapi.yaml
48
+
49
+ # Use custom ruleset
50
+ spectral lint openapi.yaml --ruleset .spectral.yaml
51
+
52
+ # Output as JSON
53
+ spectral lint openapi.yaml --format json
54
+ ```
55
+
56
+ ### Redocly CLI
57
+
58
+ ```bash
59
+ # Lint with redocly
60
+ redocly lint openapi.yaml
61
+
62
+ # Bundle specification
63
+ redocly bundle openapi.yaml -o bundled.yaml
64
+
65
+ # Build documentation
66
+ redocly build-docs openapi.yaml
67
+
68
+ # Preview documentation locally
69
+ redocly preview-docs openapi.yaml
70
+ ```
71
+
72
+ ## Configuration
73
+
74
+ ### Spectral Ruleset
75
+
76
+ Create `.spectral.yaml` for custom linting rules:
77
+
78
+ ```yaml
79
+ extends: [[spectral:oas, all]]
80
+
81
+ rules:
82
+ operation-description: error
83
+ operation-tags: error
84
+ operation-operationId: error
85
+
86
+ # Custom rules
87
+ my-custom-rule:
88
+ description: Ensure all operations have examples
89
+ given: $.paths[*][*].responses[*].content[*]
90
+ severity: warn
91
+ then:
92
+ field: example
93
+ function: truthy
94
+ ```
95
+
96
+ ### Redocly Configuration
97
+
98
+ Create `redocly.yaml`:
99
+
100
+ ```yaml
101
+ apis:
102
+ main:
103
+ root: ./openapi.yaml
104
+
105
+ lint:
106
+ extends:
107
+ - recommended
108
+
109
+ rules:
110
+ operation-description: error
111
+ operation-tags: error
112
+ ```
113
+
114
+ ## Use Cases
115
+
116
+ - **API design** - Design and validate OpenAPI specifications
117
+ - **Documentation** - Generate beautiful API documentation
118
+ - **Quality assurance** - Lint APIs for best practices
119
+ - **Code generation** - Validate specs before code generation
120
+ - **CI/CD** - Automated API validation in pipelines
121
+
122
+ **Integrates well with:**
123
+
124
+ - `nodejs` - Node.js runtime (suggested)
125
+ - Any REST API framework (Express, FastAPI, ASP.NET Core, etc.)
126
+ - `docker-in-docker` or `docker-sock` - For containerized API testing
127
+
128
+ ## OpenAPI Specification Basics
129
+
130
+ ### Minimal Example
131
+
132
+ ```yaml
133
+ openapi: 3.0.0
134
+ info:
135
+ title: My API
136
+ version: 1.0.0
137
+ description: API description
138
+
139
+ servers:
140
+ - url: http://localhost:3000
141
+ description: Development server
142
+
143
+ paths:
144
+ /users:
145
+ get:
146
+ summary: Get all users
147
+ operationId: getUsers
148
+ tags:
149
+ - users
150
+ responses:
151
+ '200':
152
+ description: Successful response
153
+ content:
154
+ application/json:
155
+ schema:
156
+ type: array
157
+ items:
158
+ $ref: '#/components/schemas/User'
159
+
160
+ components:
161
+ schemas:
162
+ User:
163
+ type: object
164
+ required:
165
+ - id
166
+ - name
167
+ properties:
168
+ id:
169
+ type: integer
170
+ name:
171
+ type: string
172
+ email:
173
+ type: string
174
+ format: email
175
+ ```
176
+
177
+ ## Workflow
178
+
179
+ ### Development Workflow
180
+
181
+ 1. **Design**: Create OpenAPI spec (YAML or JSON)
182
+ 2. **Validate**: `swagger-cli validate openapi.yaml`
183
+ 3. **Lint**: `spectral lint openapi.yaml`
184
+ 4. **Preview**: `redocly preview-docs openapi.yaml`
185
+ 5. **Iterate**: Fix issues and repeat
186
+
187
+ ### CI/CD Integration
188
+
189
+ ```bash
190
+ # In CI pipeline
191
+ swagger-cli validate openapi.yaml
192
+ spectral lint openapi.yaml --fail-severity warn
193
+ redocly lint openapi.yaml
194
+ ```
195
+
196
+ ## Troubleshooting
197
+
198
+ ### swagger-cli Not Found
199
+
200
+ Ensure Node.js and npm are installed:
201
+
202
+ ```bash
203
+ node --version
204
+ npm --version
205
+ ```
206
+
207
+ Reinstall if needed:
208
+
209
+ ```bash
210
+ npm install -g @apidevtools/swagger-cli
211
+ ```
212
+
213
+ ### Validation Errors
214
+
215
+ Common OpenAPI errors:
216
+
217
+ - **Missing required fields**: Add `info`, `paths`, `openapi` version
218
+ - **Invalid references**: Ensure `$ref` paths are correct
219
+ - **Schema errors**: Validate against OpenAPI 3.0/3.1 schema
220
+
221
+ ### Spectral Errors
222
+
223
+ ```bash
224
+ # Run with debugging
225
+ spectral lint openapi.yaml --verbose
226
+
227
+ # Ignore specific rules
228
+ spectral lint openapi.yaml --ignore-unknown-format
229
+ ```
230
+
231
+ ## References
232
+
233
+ - [OpenAPI Specification](https://spec.openapis.org/oas/latest.html)
234
+ - [Swagger CLI Documentation](https://github.com/APIDevTools/swagger-cli)
235
+ - [Spectral Documentation](https://stoplight.io/open-source/spectral)
236
+ - [Redocly CLI Documentation](https://redocly.com/docs/cli/)
237
+ - [OpenAPI Examples](https://github.com/OAI/OpenAPI-Specification/tree/main/examples)
238
+
239
+ **Related Overlays:**
240
+
241
+ - `nodejs` - Node.js runtime (suggested)
242
+ - `python` - For OpenAPI code generation with frameworks
243
+ - `dotnet` - For ASP.NET Core OpenAPI integration
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
3
+ "features": {
4
+ "./features/cross-distro-packages": {
5
+ "apt": "curl",
6
+ "apk": "curl"
7
+ }
8
+ },
9
+ "postCreateCommand": "bash .devcontainer/scripts/setup-openapi-tools.sh"
10
+ }
@@ -0,0 +1,16 @@
1
+ id: openapi-tools
2
+ name: OpenAPI Tools
3
+ description: OpenAPI/Swagger tooling for API development and documentation
4
+ category: dev
5
+ supports: []
6
+ requires: []
7
+ suggests:
8
+ - nodejs
9
+ conflicts: []
10
+ tags:
11
+ - dev
12
+ - openapi
13
+ - swagger
14
+ - api
15
+ - documentation
16
+ ports: []
@@ -0,0 +1,45 @@
1
+ #!/bin/bash
2
+ # Setup script for OpenAPI Tools
3
+
4
+ set -e
5
+
6
+ echo "🔧 Setting up OpenAPI Tools..."
7
+
8
+ # Install OpenAPI tools globally via npm
9
+ echo "📦 Installing OpenAPI tools..."
10
+
11
+ # Install swagger-cli (OpenAPI validation)
12
+ npm install -g @apidevtools/swagger-cli || echo "⚠️ swagger-cli already installed or failed"
13
+
14
+ # Install spectral (OpenAPI linting)
15
+ npm install -g @stoplight/spectral-cli || echo "⚠️ spectral already installed or failed"
16
+
17
+ # Install redocly CLI (documentation and bundling)
18
+ npm install -g @redocly/cli || echo "⚠️ redocly already installed or failed"
19
+
20
+ # Verify installations
21
+ echo ""
22
+ echo "✅ OpenAPI tools setup complete"
23
+ echo ""
24
+ echo "Installed tools:"
25
+
26
+ if command -v swagger-cli &> /dev/null; then
27
+ echo " ✓ swagger-cli (OpenAPI validation)"
28
+ swagger-cli --version
29
+ fi
30
+
31
+ if command -v spectral &> /dev/null; then
32
+ echo " ✓ spectral (OpenAPI linting)"
33
+ spectral --version
34
+ fi
35
+
36
+ if command -v redocly &> /dev/null; then
37
+ echo " ✓ redocly (documentation and bundling)"
38
+ redocly --version
39
+ fi
40
+
41
+ echo ""
42
+ echo "ℹ️ Usage examples:"
43
+ echo " swagger-cli validate openapi.yaml"
44
+ echo " spectral lint openapi.yaml"
45
+ echo " redocly lint openapi.yaml"
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+ # Verification script for OpenAPI Tools overlay
3
+ # Confirms OpenAPI tools are installed
4
+
5
+ set -e
6
+
7
+ echo "🔍 Verifying OpenAPI Tools overlay..."
8
+ echo ""
9
+
10
+ ALL_CHECKS_PASSED=true
11
+
12
+ # Check swagger-cli
13
+ echo "1️⃣ Checking swagger-cli..."
14
+ if command -v swagger-cli &> /dev/null; then
15
+ swagger-cli --version
16
+ echo " ✅ swagger-cli is installed"
17
+ else
18
+ echo " ❌ swagger-cli is not installed"
19
+ ALL_CHECKS_PASSED=false
20
+ fi
21
+
22
+ # Check spectral
23
+ echo ""
24
+ echo "2️⃣ Checking spectral..."
25
+ if command -v spectral &> /dev/null; then
26
+ spectral --version
27
+ echo " ✅ spectral is installed"
28
+ else
29
+ echo " ❌ spectral is not installed"
30
+ ALL_CHECKS_PASSED=false
31
+ fi
32
+
33
+ # Check redocly
34
+ echo ""
35
+ echo "3️⃣ Checking redocly..."
36
+ if command -v redocly &> /dev/null; then
37
+ redocly --version
38
+ echo " ✅ redocly is installed"
39
+ else
40
+ echo " ❌ redocly is not installed"
41
+ ALL_CHECKS_PASSED=false
42
+ fi
43
+
44
+ echo ""
45
+ if [ "$ALL_CHECKS_PASSED" = true ]; then
46
+ echo "✅ OpenAPI Tools overlay verification complete"
47
+ exit 0
48
+ else
49
+ echo "⚠️ Some OpenAPI tools are missing"
50
+ exit 1
51
+ fi
@@ -0,0 +1,26 @@
1
+ # Example: OpenTelemetry Collector with shared config
2
+ # This demonstrates the imports feature
3
+
4
+ id: otel-collector
5
+ name: OpenTelemetry Collector
6
+ description: Telemetry data collection and export
7
+ category: observability
8
+ supports:
9
+ - compose
10
+ requires: []
11
+ suggests:
12
+ - jaeger
13
+ - prometheus
14
+ conflicts: []
15
+ tags:
16
+ - observability
17
+ - telemetry
18
+ - opentelemetry
19
+ ports:
20
+ - 4317
21
+ - 4318
22
+ - 8888
23
+ - 8889
24
+ order: 2
25
+ imports:
26
+ - .shared/otel/instrumentation.env
@@ -12,4 +12,9 @@ tags:
12
12
  - sql
13
13
  - postgres
14
14
  ports:
15
- - 5432
15
+ - port: 5432
16
+ service: postgres
17
+ protocol: tcp
18
+ description: PostgreSQL database connection
19
+ onAutoForward: notify
20
+ connectionStringTemplate: 'postgresql://{postgres_user}:{postgres_password}@{host}:{port}/{postgres_db}'
@@ -13,5 +13,10 @@ tags:
13
13
  - metrics
14
14
  - prometheus
15
15
  ports:
16
- - 9090
16
+ - port: 9090
17
+ service: prometheus
18
+ protocol: http
19
+ description: Prometheus web UI and API
20
+ path: /
21
+ onAutoForward: openBrowser
17
22
  order: 1
@@ -14,5 +14,15 @@ tags:
14
14
  - rabbitmq
15
15
  - amqp
16
16
  ports:
17
- - 5672
18
- - 15672
17
+ - port: 5672
18
+ service: rabbitmq
19
+ protocol: tcp
20
+ description: RabbitMQ AMQP connection
21
+ onAutoForward: notify
22
+ connectionStringTemplate: 'amqp://{rabbitmq_user}:{rabbitmq_password}@{host}:{port}{rabbitmq_vhost}'
23
+ - port: 15672
24
+ service: rabbitmq
25
+ protocol: http
26
+ description: RabbitMQ management UI
27
+ path: /
28
+ onAutoForward: openBrowser
@@ -12,4 +12,9 @@ tags:
12
12
  - cache
13
13
  - redis
14
14
  ports:
15
- - 6379
15
+ - port: 6379
16
+ service: redis
17
+ protocol: tcp
18
+ description: Redis server connection
19
+ onAutoForward: notify
20
+ connectionStringTemplate: 'redis://{host}:{port}'