|
|
||
|---|---|---|
| .dockerignore | ||
| .gitignore | ||
| boltic.yaml | ||
| Dockerfile | ||
| index.js | ||
| package.json | ||
| README.md | ||
test-git-fcz5
Production-ready Node.js API server for testing git serverless deployment.
Features
- ✅ Express.js REST API
- ✅ CRUD operations (Users & Tasks)
- ✅ Health checks (
/health,/ready) - ✅ Environment info endpoint (
/api/env) - ✅ Production-ready Dockerfile (multi-stage)
- ✅ Security middleware (Helmet, CORS)
- ✅ Request logging (Morgan)
- ✅ Gzip compression
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Service info |
| GET | /health |
Health check |
| GET | /ready |
Readiness check |
| GET | /api/env |
Environment variables (for testing) |
| GET | /api/users |
List all users |
| GET | /api/users/:id |
Get user by ID |
| POST | /api/users |
Create user |
| PUT | /api/users/:id |
Update user |
| DELETE | /api/users/:id |
Delete user |
| GET | /api/tasks |
List tasks (filter by userId, status) |
| POST | /api/tasks |
Create task |
| PATCH | /api/tasks/:id/status |
Update task status |
| ALL | /api/echo |
Echo request details |
Local Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run in production mode
npm start
Docker
# Build image
docker build -t test-git-fcz5 .
# Run container
docker run -p 8080:8080 test-git-fcz5
Testing API
# Health check
curl http://localhost:8080/health
# Get environment info
curl http://localhost:8080/api/env
# List users
curl http://localhost:8080/api/users
# Create user
curl -X POST http://localhost:8080/api/users \
-H "Content-Type: application/json" \
-d '{"name": "Test User", "email": "test@example.com"}'
# Create task
curl -X POST http://localhost:8080/api/tasks \
-H "Content-Type: application/json" \
-d '{"userId": "1", "title": "New task"}'
# Update task status
curl -X PATCH http://localhost:8080/api/tasks/1/status \
-H "Content-Type: application/json" \
-d '{"status": "done"}'
Backward Compatibility Testing
This app uses the OLD boltic.yaml format (no serverlessConfig section).
Test Steps:
- Deploy this app BEFORE new conductor code
- Configure from UI: Scaling, Env, PortMap
- Deploy new conductor code
- Push a code change
- Verify UI settings are preserved
License
MIT