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.
- package/README.md +206 -1
- package/dist/scripts/init.js +235 -179
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/commands/doctor.d.ts +15 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -0
- package/dist/tool/commands/doctor.js +862 -0
- package/dist/tool/commands/doctor.js.map +1 -0
- package/dist/tool/commands/explain.d.ts +13 -0
- package/dist/tool/commands/explain.d.ts.map +1 -0
- package/dist/tool/commands/explain.js +211 -0
- package/dist/tool/commands/explain.js.map +1 -0
- package/dist/tool/commands/list.d.ts +16 -0
- package/dist/tool/commands/list.d.ts.map +1 -0
- package/dist/tool/commands/list.js +121 -0
- package/dist/tool/commands/list.js.map +1 -0
- package/dist/tool/commands/plan.d.ts +16 -0
- package/dist/tool/commands/plan.d.ts.map +1 -0
- package/dist/tool/commands/plan.js +329 -0
- package/dist/tool/commands/plan.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -1
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +300 -202
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -1
- package/dist/tool/readme/markdown-parser.js.map +1 -1
- package/dist/tool/readme/readme-generator.d.ts.map +1 -1
- package/dist/tool/readme/readme-generator.js +11 -6
- package/dist/tool/readme/readme-generator.js.map +1 -1
- package/dist/tool/schema/deployment-targets.d.ts +77 -0
- package/dist/tool/schema/deployment-targets.d.ts.map +1 -0
- package/dist/tool/schema/deployment-targets.js +91 -0
- package/dist/tool/schema/deployment-targets.js.map +1 -0
- package/dist/tool/schema/manifest-migrations.d.ts +51 -0
- package/dist/tool/schema/manifest-migrations.d.ts.map +1 -0
- package/dist/tool/schema/manifest-migrations.js +159 -0
- package/dist/tool/schema/manifest-migrations.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +1 -1
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
- package/dist/tool/schema/overlay-loader.js +42 -14
- package/dist/tool/schema/overlay-loader.js.map +1 -1
- package/dist/tool/schema/types.d.ts +44 -2
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/dist/tool/utils/merge.d.ts +134 -0
- package/dist/tool/utils/merge.d.ts.map +1 -0
- package/dist/tool/utils/merge.js +277 -0
- package/dist/tool/utils/merge.js.map +1 -0
- package/dist/tool/utils/port-utils.d.ts +29 -0
- package/dist/tool/utils/port-utils.d.ts.map +1 -0
- package/dist/tool/utils/port-utils.js +128 -0
- package/dist/tool/utils/port-utils.js.map +1 -0
- package/dist/tool/utils/version.d.ts +9 -0
- package/dist/tool/utils/version.d.ts.map +1 -0
- package/dist/tool/utils/version.js +32 -0
- package/dist/tool/utils/version.js.map +1 -0
- package/docs/architecture.md +25 -21
- package/docs/deployment-targets.md +150 -0
- package/docs/discovery-commands.md +442 -0
- package/docs/merge-strategy.md +700 -0
- package/docs/minimal-and-editor.md +265 -0
- package/docs/overlay-imports.md +209 -0
- package/docs/overlay-manifest-refactoring.md +2 -2
- package/docs/overlay-metadata-archive.md +1 -1
- package/docs/overlays.md +91 -23
- package/docs/presets-architecture.md +3 -3
- package/docs/presets.md +1 -1
- package/docs/publishing.md +36 -35
- package/docs/team-workflow.md +540 -0
- package/overlays/.presets/data-engineering.yml +392 -0
- package/overlays/.presets/event-sourced-service.yml +262 -0
- package/overlays/.presets/frontend.yml +287 -0
- package/overlays/.presets/k8s-operator-dev.yml +462 -0
- package/overlays/.registry/README.md +1 -1
- package/overlays/.registry/deployment-targets.yml +54 -0
- package/overlays/.shared/README.md +43 -0
- package/overlays/.shared/compose/common-healthchecks.yml +38 -0
- package/overlays/.shared/otel/instrumentation.env +20 -0
- package/overlays/.shared/otel/otel-base-config.yaml +30 -0
- package/overlays/.shared/vscode/recommended-extensions.json +14 -0
- package/overlays/README.md +1 -1
- package/overlays/codex/overlay.yml +1 -0
- package/overlays/duckdb/README.md +274 -0
- package/overlays/duckdb/devcontainer.patch.json +10 -0
- package/overlays/duckdb/overlay.yml +17 -0
- package/overlays/duckdb/setup.sh +45 -0
- package/overlays/duckdb/verify.sh +32 -0
- package/overlays/git-helpers/overlay.yml +1 -0
- package/overlays/grafana/README.md +5 -5
- package/overlays/grafana/dashboard-provider.yml +1 -1
- package/overlays/grafana/docker-compose.yml +2 -2
- package/overlays/grafana/overlay.yml +6 -1
- package/overlays/jaeger/overlay.yml +16 -3
- package/overlays/jupyter/.env.example +6 -0
- package/overlays/jupyter/README.md +210 -0
- package/overlays/jupyter/devcontainer.patch.json +14 -0
- package/overlays/jupyter/docker-compose.yml +23 -0
- package/overlays/jupyter/overlay.yml +18 -0
- package/overlays/jupyter/verify.sh +35 -0
- package/overlays/kind/README.md +221 -0
- package/overlays/kind/devcontainer.patch.json +10 -0
- package/overlays/kind/overlay.yml +18 -0
- package/overlays/kind/setup.sh +43 -0
- package/overlays/kind/verify.sh +40 -0
- package/overlays/localstack/.env.example +6 -0
- package/overlays/localstack/README.md +188 -0
- package/overlays/localstack/devcontainer.patch.json +21 -0
- package/overlays/localstack/docker-compose.yml +25 -0
- package/overlays/localstack/overlay.yml +18 -0
- package/overlays/localstack/verify.sh +47 -0
- package/overlays/loki/overlay.yml +6 -1
- package/overlays/modern-cli-tools/overlay.yml +1 -0
- package/overlays/mongodb/overlay.yml +12 -2
- package/overlays/mysql/overlay.yml +12 -2
- package/overlays/nats/overlay.yml +12 -2
- package/overlays/openapi-tools/README.md +243 -0
- package/overlays/openapi-tools/devcontainer.patch.json +10 -0
- package/overlays/openapi-tools/overlay.yml +16 -0
- package/overlays/openapi-tools/setup.sh +45 -0
- package/overlays/openapi-tools/verify.sh +51 -0
- package/overlays/otel-collector/overlay.yml.example +26 -0
- package/overlays/postgres/overlay.yml +6 -1
- package/overlays/prometheus/overlay.yml +6 -1
- package/overlays/rabbitmq/overlay.yml +12 -2
- package/overlays/redis/overlay.yml +6 -1
- package/overlays/tilt/README.md +259 -0
- package/overlays/tilt/devcontainer.patch.json +17 -0
- package/overlays/tilt/overlay.yml +19 -0
- package/overlays/tilt/setup.sh +25 -0
- package/overlays/tilt/verify.sh +24 -0
- package/package.json +8 -6
- package/tool/README.md +12 -16
- package/tool/schema/overlay-manifest.schema.json +64 -4
- package/tool/schema/superposition-manifest.schema.json +104 -0
- /package/overlays/{presets → .presets}/docs-site.yml +0 -0
- /package/overlays/{presets → .presets}/fullstack.yml +0 -0
- /package/overlays/{presets → .presets}/microservice.yml +0 -0
- /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,15 @@ tags:
|
|
|
13
13
|
- mongodb
|
|
14
14
|
- document
|
|
15
15
|
ports:
|
|
16
|
-
- 27017
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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}'
|
|
@@ -14,5 +14,15 @@ tags:
|
|
|
14
14
|
- rabbitmq
|
|
15
15
|
- amqp
|
|
16
16
|
ports:
|
|
17
|
-
- 5672
|
|
18
|
-
|
|
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
|