@synapta/skills 0.1.0 → 0.1.2
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/dist/index.js +11 -4
- package/package.json +3 -4
- package/skills/ATTRIBUTION.md +80 -0
- package/skills/accessibility-audit/SKILL.md +325 -0
- package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
- package/skills/apns-notifier/SKILL.md +86 -0
- package/skills/approval-policy-enforcer/SKILL.md +66 -0
- package/skills/apps-sdk-builder/LICENSE.txt +201 -0
- package/skills/apps-sdk-builder/SKILL.md +328 -0
- package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
- package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
- package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
- package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
- package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
- package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
- package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
- package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/architecture-selector/SKILL.md +64 -0
- package/skills/backlog-planner/SKILL.md +68 -0
- package/skills/carplay-entitlement-checker/SKILL.md +82 -0
- package/skills/concept-discovery/SKILL.md +517 -0
- package/skills/concept-discovery/assets/sample-analysis.json +81 -0
- package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
- package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
- package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
- package/skills/concept-discovery/references/framework-patterns.md +228 -0
- package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
- package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
- package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
- package/skills/dast-zap/SKILL.md +453 -0
- package/skills/dast-zap/assets/.gitkeep +9 -0
- package/skills/dast-zap/assets/github_action.yml +207 -0
- package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
- package/skills/dast-zap/assets/zap_automation.yaml +196 -0
- package/skills/dast-zap/assets/zap_context.xml +192 -0
- package/skills/dast-zap/references/EXAMPLE.md +40 -0
- package/skills/dast-zap/references/api_testing_guide.md +475 -0
- package/skills/dast-zap/references/authentication_guide.md +431 -0
- package/skills/dast-zap/references/false_positive_handling.md +427 -0
- package/skills/dast-zap/references/owasp_mapping.md +255 -0
- package/skills/dep-sbom-scan/SKILL.md +466 -0
- package/skills/deploy-cloudflare/SKILL.md +930 -0
- package/skills/deploy-docker/SKILL.md +55 -0
- package/skills/deploy-fly/SKILL.md +228 -0
- package/skills/deploy-k8s/SKILL.md +108 -0
- package/skills/deploy-k8s/assets/logo.png +0 -0
- package/skills/deploy-k8s/docs/README.md +29 -0
- package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
- package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
- package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
- package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
- package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
- package/skills/deploy-k8s/docs/book.json +16 -0
- package/skills/deploy-k8s/docs/community/changelog.md +34 -0
- package/skills/deploy-k8s/docs/community/contributing.md +67 -0
- package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
- package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
- package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
- package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
- package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
- package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
- package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
- package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
- package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
- package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
- package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
- package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
- package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
- package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
- package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
- package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
- package/skills/deploy-k8s/docs/guides/observability.md +67 -0
- package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
- package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
- package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
- package/skills/deploy-k8s/docs/package-lock.json +2892 -0
- package/skills/deploy-k8s/docs/package.json +13 -0
- package/skills/deploy-k8s/references/api-drift.md +298 -0
- package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
- package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
- package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
- package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
- package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
- package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
- package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
- package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
- package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
- package/skills/deploy-k8s/references/examples-bad.md +282 -0
- package/skills/deploy-k8s/references/examples-good.md +440 -0
- package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
- package/skills/deploy-k8s/references/helm-patterns.md +203 -0
- package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
- package/skills/deploy-k8s/references/job-patterns.md +120 -0
- package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
- package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
- package/skills/deploy-k8s/references/network-exposure.md +481 -0
- package/skills/deploy-k8s/references/observability.md +302 -0
- package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
- package/skills/deploy-k8s/references/resource-starvation.md +374 -0
- package/skills/deploy-k8s/references/security-hardening.md +209 -0
- package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
- package/skills/deploy-k8s/references/storage-and-state.md +330 -0
- package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
- package/skills/deploy-railway/SKILL.md +235 -0
- package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
- package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
- package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
- package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
- package/skills/deploy-railway/references/analyze-db.md +344 -0
- package/skills/deploy-railway/references/configure.md +309 -0
- package/skills/deploy-railway/references/deploy.md +195 -0
- package/skills/deploy-railway/references/operate.md +214 -0
- package/skills/deploy-railway/references/request.md +248 -0
- package/skills/deploy-railway/references/setup.md +312 -0
- package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
- package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
- package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
- package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
- package/skills/deploy-railway/scripts/dal.py +671 -0
- package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
- package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
- package/skills/deploy-railway/scripts/railway-api.sh +52 -0
- package/skills/deploy-ssh/SKILL.md +91 -0
- package/skills/deploy-vercel/SKILL.md +304 -0
- package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
- package/skills/deploy-vercel/resources/deploy.sh +301 -0
- package/skills/docs-runbooks/SKILL.md +399 -0
- package/skills/drive-status-renderer/SKILL.md +62 -0
- package/skills/iac-scan/SKILL.md +680 -0
- package/skills/iac-scan/assets/.gitkeep +9 -0
- package/skills/iac-scan/assets/checkov_config.yaml +94 -0
- package/skills/iac-scan/assets/github_actions.yml +199 -0
- package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
- package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
- package/skills/iac-scan/references/EXAMPLE.md +40 -0
- package/skills/iac-scan/references/compliance_mapping.md +237 -0
- package/skills/iac-scan/references/custom_policies.md +460 -0
- package/skills/iac-scan/references/suppression_guide.md +431 -0
- package/skills/incident-briefing/SKILL.md +66 -0
- package/skills/incident-triage/SKILL.md +481 -0
- package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
- package/skills/mcp-builder/SKILL.md +244 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mobile-pairing/SKILL.md +52 -0
- package/skills/ops-sre/SKILL.md +297 -0
- package/skills/playwright-qa/LICENSE.txt +201 -0
- package/skills/playwright-qa/NOTICE.txt +14 -0
- package/skills/playwright-qa/SKILL.md +156 -0
- package/skills/playwright-qa/agents/openai.yaml +6 -0
- package/skills/playwright-qa/assets/playwright-small.svg +3 -0
- package/skills/playwright-qa/assets/playwright.png +0 -0
- package/skills/playwright-qa/references/cli.md +116 -0
- package/skills/playwright-qa/references/workflows.md +95 -0
- package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
- package/skills/release-publish/SKILL.md +85 -0
- package/skills/repo-bootstrap/SKILL.md +92 -0
- package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
- package/skills/repo-bootstrap/assets/root-thin.md +141 -0
- package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
- package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
- package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
- package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
- package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
- package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
- package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
- package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
- package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
- package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
- package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
- package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
- package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
- package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
- package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
- package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
- package/skills/repo-bootstrap/checkpoints.yaml +279 -0
- package/skills/repo-bootstrap/evals/evals.json +385 -0
- package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
- package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
- package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
- package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
- package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
- package/skills/repo-bootstrap/references/output-structure.md +124 -0
- package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
- package/skills/repo-bootstrap/references/verification-guide.md +137 -0
- package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
- package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
- package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
- package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
- package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
- package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
- package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
- package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
- package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
- package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
- package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
- package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
- package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
- package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
- package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
- package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
- package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
- package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
- package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
- package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
- package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
- package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
- package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
- package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
- package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
- package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
- package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
- package/skills/schema-api-contracts/SKILL.md +56 -0
- package/skills/secret-hygiene/SKILL.md +511 -0
- package/skills/secret-hygiene/assets/.gitkeep +9 -0
- package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
- package/skills/secret-hygiene/assets/config-custom.toml +178 -0
- package/skills/secret-hygiene/assets/config-strict.toml +48 -0
- package/skills/secret-hygiene/assets/github-action.yml +181 -0
- package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
- package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
- package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
- package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
- package/skills/secret-hygiene/references/detection_rules.md +276 -0
- package/skills/secret-hygiene/references/false_positives.md +598 -0
- package/skills/secret-hygiene/references/remediation_guide.md +530 -0
- package/skills/stack-selector/SKILL.md +56 -0
- package/skills/telegram-control/SKILL.md +110 -0
- package/skills/telegram-control/references/architecture.md +184 -0
- package/skills/telegram-control/references/convex.md +173 -0
- package/skills/telegram-control/references/error_handling.md +212 -0
- package/skills/telegram-control/references/initial_setup.md +165 -0
- package/skills/telegram-control/references/telegram_api.md +156 -0
- package/skills/telegram-control/scripts/cancel_message.ts +53 -0
- package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
- package/skills/telegram-control/scripts/logger.ts +121 -0
- package/skills/telegram-control/scripts/proxy-util.ts +11 -0
- package/skills/telegram-control/scripts/schedule_message.ts +216 -0
- package/skills/telegram-control/scripts/send_message.ts +115 -0
- package/skills/telegram-control/scripts/setup.ts +185 -0
- package/skills/telegram-control/scripts/types.ts +75 -0
- package/skills/telegram-control/scripts/view_history.ts +74 -0
- package/skills/test-strategy/SKILL.md +352 -0
- package/skills/threat-model/SKILL.md +303 -0
- package/skills/threat-model/examples/example-output.md +196 -0
- package/skills/threat-model/template.md +96 -0
- package/skills/ts-lint/SKILL.md +80 -0
- package/skills/ui-flow/SKILL.md +668 -0
- package/skills/voice-command-router/SKILL.md +51 -0
- package/skills/widget-live-activity-sync/SKILL.md +66 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# Operate
|
|
2
|
+
|
|
3
|
+
Check health, read logs, query metrics, and troubleshoot failures.
|
|
4
|
+
|
|
5
|
+
## Health snapshot
|
|
6
|
+
|
|
7
|
+
Start broad, then narrow:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
railway status --json # linked context
|
|
11
|
+
railway service list --json # services in current environment
|
|
12
|
+
railway deployment list --limit 10 --json # recent deployments
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Deployment statuses: `SUCCESS`, `BUILDING`, `DEPLOYING`, `FAILED`, `CRASHED`, `REMOVED`.
|
|
16
|
+
|
|
17
|
+
For projects with buckets, include bucket status:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
railway bucket list --json # buckets in current environment
|
|
21
|
+
railway bucket info --bucket <name> --json # storage size, object count, region
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If everything looks healthy, return a summary and stop. If something is degraded or failing, continue to log inspection.
|
|
25
|
+
|
|
26
|
+
## Logs
|
|
27
|
+
|
|
28
|
+
### Recent logs
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
railway logs --service <service> --lines 200 --json # runtime logs
|
|
32
|
+
railway logs --service <service> --build --lines 200 --json # build logs
|
|
33
|
+
railway logs --latest --lines 200 --json # latest deployment
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
In an interactive terminal, `railway logs` streams indefinitely when no bounding flags are given. Always use `--lines`, `--since`, or `--until` to get a bounded fetch for agent workflows.
|
|
37
|
+
|
|
38
|
+
### Time-bounded queries
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
railway logs --service <service> --since 1h --lines 400 --json
|
|
42
|
+
railway logs --service <service> --since 30m --until 10m --lines 400 --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Filtered queries
|
|
46
|
+
|
|
47
|
+
Use `--filter` to narrow logs without scanning everything manually:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
railway logs --service <service> --lines 200 --filter "@level:error" --json
|
|
51
|
+
railway logs --service <service> --lines 200 --filter "@level:warn AND timeout" --json
|
|
52
|
+
railway logs --service <service> --lines 200 --filter "connection refused" --json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Filter syntax supports text search (`"error message"`), attribute filters (`@level:error`, `@level:warn`), and boolean operators (`AND`, `OR`, `-` for negation). Full syntax: https://docs.railway.com/guides/logs
|
|
56
|
+
|
|
57
|
+
### Scoped by environment
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
railway logs --service <service> --environment <env> --lines 200 --json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### HTTP logs
|
|
64
|
+
|
|
65
|
+
Use HTTP logs when a service responds with errors, latency spikes, or routing problems:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
railway logs --service <service> --http --status ">=400" --lines 100 --json
|
|
69
|
+
railway logs --service <service> --http --method POST --path /api/users --lines 100 --json
|
|
70
|
+
railway logs --service <service> --http --request-id <request-id> --lines 20 --json
|
|
71
|
+
railway logs --service <service> --http --filter "@totalDuration:>=1000" --lines 100 --json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
HTTP filter fields include `@method`, `@path`, `@host`, `@requestId`, `@srcIp`, `@edgeRegion`, `@httpStatus`, `@totalDuration`, `@responseTime`, `@txBytes`, and `@rxBytes`.
|
|
75
|
+
|
|
76
|
+
## Metrics
|
|
77
|
+
|
|
78
|
+
Use `railway metrics` for resource and HTTP metrics. It summarizes CPU, memory, network, volume, and HTTP data for the linked service by default.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
railway metrics --service <service> --since 1h --json
|
|
82
|
+
railway metrics --service <service> --since 6h --cpu --memory --json
|
|
83
|
+
railway metrics --service <service> --http --method POST --path /api/users --json
|
|
84
|
+
railway metrics --all --environment production --json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Use `--raw` for time-series data points:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
railway metrics --service <service> --raw --cpu --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Metric flags can be combined: `--cpu`, `--memory`, `--network`, `--volume`, and `--http`. Use `--watch` only in an interactive terminal; it opens a live TUI and conflicts with `--json` and `--raw`.
|
|
94
|
+
|
|
95
|
+
For custom grouping or measurements the CLI doesn't expose, use the GraphQL fallback in [request.md](request.md).
|
|
96
|
+
|
|
97
|
+
## SSH
|
|
98
|
+
|
|
99
|
+
Use SSH when logs and metrics don't expose enough state and the user needs shell-level inspection inside a running service.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
railway ssh --service <service> --environment <env>
|
|
103
|
+
railway ssh --service <service> --environment <env> -- "printenv | sort"
|
|
104
|
+
railway ssh --service <service> --environment <env> --session railway-debug
|
|
105
|
+
railway ssh --service <service> --environment <env> --identity-file ~/.ssh/id_ed25519_railway
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Manage Railway SSH keys with:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
railway ssh keys list
|
|
112
|
+
railway ssh keys add --key ~/.ssh/id_ed25519.pub --name <key-name>
|
|
113
|
+
railway ssh keys github
|
|
114
|
+
railway ssh keys remove <key-id> --2fa-code <code>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Workspace-owned keys use `--workspace <workspace-id>` and require workspace Admin access. SSH key management doesn't work with project tokens (`RAILWAY_TOKEN`); use `railway login` or a workspace-scoped `RAILWAY_API_TOKEN`.
|
|
118
|
+
|
|
119
|
+
## Database inspection
|
|
120
|
+
|
|
121
|
+
For database-level metrics and introspection, use the analysis scripts. `railway metrics` can provide infrastructure metrics and supported database summaries, while the scripts provide deeper engine-level analysis. See [analyze-db.md](analyze-db.md) for comprehensive database analysis including:
|
|
122
|
+
|
|
123
|
+
- Deep Postgres analysis (pg_stat_statements, vacuum health, index health, cache hit ratios)
|
|
124
|
+
- HA cluster checks (Patroni, etcd, HAProxy)
|
|
125
|
+
- Redis, MySQL, and MongoDB introspection
|
|
126
|
+
- Combined analysis via `scripts/analyze-<type>.py` (postgres, mysql, redis, mongo)
|
|
127
|
+
|
|
128
|
+
## Failure triage
|
|
129
|
+
|
|
130
|
+
When something is broken, classify the failure first. The fix depends on the class.
|
|
131
|
+
|
|
132
|
+
### Build failures
|
|
133
|
+
|
|
134
|
+
The service failed to build. Look at build logs:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
railway logs --latest --build --lines 400 --json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Common causes and fixes:
|
|
141
|
+
- **Missing dependencies**: check lockfiles, verify package manager detection
|
|
142
|
+
- **Wrong build command**: override with `railway environment edit --service-config <service> build.buildCommand "<command>"`
|
|
143
|
+
- **Builder mismatch**: switch builders with `railway environment edit --service-config <service> build.builder RAILPACK`
|
|
144
|
+
- **Wrong root directory** (monorepo): set `source.rootDirectory` to the correct package path
|
|
145
|
+
|
|
146
|
+
### Runtime failures
|
|
147
|
+
|
|
148
|
+
The build succeeded but the service crashes or misbehaves:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
railway logs --latest --lines 400 --json
|
|
152
|
+
railway logs --service <service> --since 1h --lines 400 --json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Common causes and fixes:
|
|
156
|
+
- **Bad start command**: override with `railway environment edit --service-config <service> deploy.startCommand "<command>"`
|
|
157
|
+
- **Missing runtime variable**: check `railway variable list --service <service> --json` and set missing values
|
|
158
|
+
- **Port mismatch**: the service must listen on `$PORT` (Railway injects this). Verify with logs.
|
|
159
|
+
- **Upstream dependency down**: check other services' status and logs
|
|
160
|
+
|
|
161
|
+
### Config-driven failures
|
|
162
|
+
|
|
163
|
+
Something worked before and broke after a config change:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
railway environment config --json
|
|
167
|
+
railway variable list --service <service> --json
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Compare the config against expected values. Look for changes that may have introduced the regression.
|
|
171
|
+
|
|
172
|
+
### Networking failures
|
|
173
|
+
|
|
174
|
+
Domain returns errors, or service-to-service calls fail:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
railway domain --service <service> --json
|
|
178
|
+
railway logs --service <service> --lines 200 --json
|
|
179
|
+
railway logs --service <service> --http --status ">=400" --lines 100 --json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Check: target port matches what the service listens on, domain status is healthy, private domain variable references are correct.
|
|
183
|
+
|
|
184
|
+
## Recovery
|
|
185
|
+
|
|
186
|
+
After identifying the cause, fix and verify:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# Fix (examples)
|
|
190
|
+
railway environment edit --service-config <service> deploy.startCommand "<correct-command>"
|
|
191
|
+
railway variable set MISSING_VAR=value --service <service>
|
|
192
|
+
|
|
193
|
+
# Redeploy
|
|
194
|
+
railway redeploy --service <service> --yes
|
|
195
|
+
|
|
196
|
+
# Verify
|
|
197
|
+
railway service status --service <service> --json
|
|
198
|
+
railway logs --service <service> --lines 200 --json
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Always verify after fixing. Don't assume the redeploy succeeded.
|
|
202
|
+
|
|
203
|
+
## Troubleshoot common blockers
|
|
204
|
+
|
|
205
|
+
- **Unlinked context**: `railway link --project <id-or-name>`
|
|
206
|
+
- **Missing service scope for logs**: pass `--service` and `--environment` explicitly
|
|
207
|
+
- **No deployments found**: the service exists but has never deployed, create an initial deploy first
|
|
208
|
+
- **Metrics return empty**: check the time window, service scope, and whether the service has active deployments
|
|
209
|
+
- **Config patch type error**: check the typed paths in [configure.md](configure.md), for example, `numReplicas` is an integer, not a string
|
|
210
|
+
|
|
211
|
+
## Validated against
|
|
212
|
+
|
|
213
|
+
- Docs: [status.md](https://docs.railway.com/cli/status), [service.md](https://docs.railway.com/cli/service), [logs.md](https://docs.railway.com/cli/logs), [metrics.md](https://docs.railway.com/cli/metrics), [ssh.md](https://docs.railway.com/cli/ssh), [observability/logs.md](https://docs.railway.com/observability/logs), [observability/metrics.md](https://docs.railway.com/observability/metrics)
|
|
214
|
+
- CLI source: [status.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/status.rs), [service.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/service.rs), [logs.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/logs.rs), [metrics.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/metrics.rs), [ssh/mod.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/ssh/mod.rs), [deployment.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/deployment.rs), [redeploy.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/redeploy.rs)
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# Request
|
|
2
|
+
|
|
3
|
+
Official documentation and community endpoints. GraphQL operations for things the CLI doesn't expose.
|
|
4
|
+
|
|
5
|
+
## Official documentation
|
|
6
|
+
|
|
7
|
+
Primary sources for authoritative Railway information:
|
|
8
|
+
|
|
9
|
+
- **Full LLM docs**: `https://docs.railway.com/api/llms-docs.md`
|
|
10
|
+
- **LLM summary**: `https://railway.com/llms.txt`
|
|
11
|
+
- **Templates**: `https://railway.com/llms-templates.md`
|
|
12
|
+
- **Changelog**: `https://railway.com/llms-changelog.md`
|
|
13
|
+
- **Blog**: `https://blog.railway.com/llms-blog.md`
|
|
14
|
+
- **Direct doc pages**: `https://docs.railway.com/<path>` (for example, `cli/up`, `networking/domains`, `observability/logs`)
|
|
15
|
+
|
|
16
|
+
Tip: append `.md` to any `docs.railway.com` page URL to get a markdown version suitable for LLM consumption.
|
|
17
|
+
|
|
18
|
+
Common doc paths:
|
|
19
|
+
|
|
20
|
+
| Topic | Path |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Projects | `guides/projects` |
|
|
23
|
+
| Deployments | `guides/deployments` |
|
|
24
|
+
| Volumes | `guides/volumes` |
|
|
25
|
+
| Variables | `guides/variables` |
|
|
26
|
+
| CLI reference | `reference/cli-api` |
|
|
27
|
+
| Pricing | `reference/pricing` |
|
|
28
|
+
| Public networking | `networking/public-networking` |
|
|
29
|
+
| Private networking | `networking/private-networking` |
|
|
30
|
+
|
|
31
|
+
Fetch official docs first for product behavior questions. Use Central Station only when you need community evidence, prior incidents, or implementation anecdotes.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Central Station (community)
|
|
35
|
+
|
|
36
|
+
Search and browse Railway's community platform for prior discussions, issue patterns, and field solutions.
|
|
37
|
+
|
|
38
|
+
### Recent threads
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
curl -s 'https://station-server.railway.com/gql' \
|
|
42
|
+
-H 'content-type: application/json' \
|
|
43
|
+
-d '{"query":"{ threads(first: 10, sort: recent_activity) { edges { node { slug subject status upvoteCount createdAt topic { slug displayName } } } } }"}'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Filter by topic with the `topic` parameter (`"questions"`, `"feedback"`, `"community"`, `"billing"`):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
curl -s 'https://station-server.railway.com/gql' \
|
|
50
|
+
-H 'content-type: application/json' \
|
|
51
|
+
-d '{"query":"{ threads(first: 10, sort: recent_activity, topic: \"questions\") { edges { node { slug subject status topic { displayName } upvoteCount } } } }"}'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Sort options: `recent_activity` (default), `newest`, `highest_votes`.
|
|
55
|
+
|
|
56
|
+
### Search threads
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
curl -s 'https://station-server.railway.com/gql' \
|
|
60
|
+
-H 'content-type: application/json' \
|
|
61
|
+
-d '{"query":"{ threads(first: 10, search: \"<search-term>\") { edges { node { slug subject status } } } }"}'
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### LLM data export
|
|
65
|
+
|
|
66
|
+
Bulk search alternative, fetches all public threads with full content:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
curl -s 'https://station-server.railway.com/api/llms-station'
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Read a full thread
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
curl -s 'https://station-server.railway.com/api/threads/<slug>?format=md'
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Thread URLs follow the format: `https://station.railway.com/{topic_slug}/{thread_slug}`
|
|
79
|
+
|
|
80
|
+
Community threads are anecdotal. Always pair with official docs when the answer informs an operational decision.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## GraphQL helper
|
|
84
|
+
|
|
85
|
+
All GraphQL operations use the API helper script, which handles authentication automatically:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
scripts/railway-api.sh '<query>' '<variables-json>'
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The script reads the API token from `~/.railway/config.json` and sends requests to `https://backboard.railway.com/graphql/v2`.
|
|
92
|
+
|
|
93
|
+
For the full API schema, see: https://docs.railway.com/api/llms-docs.md
|
|
94
|
+
|
|
95
|
+
## Project mutations
|
|
96
|
+
|
|
97
|
+
The CLI doesn't expose project setting updates (rename, PR deploys, visibility). Use GraphQL:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
scripts/railway-api.sh \
|
|
101
|
+
'mutation updateProject($id: String!, $input: ProjectUpdateInput!) {
|
|
102
|
+
projectUpdate(id: $id, input: $input) { id name isPublic prDeploys botPrEnvironments }
|
|
103
|
+
}' \
|
|
104
|
+
'{"id":"<project-id>","input":{"name":"new-name","prDeploys":true}}'
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Common `ProjectUpdateInput` fields: `name`, `isPublic`, `prDeploys`, `botPrEnvironments`.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## Service mutations
|
|
111
|
+
|
|
112
|
+
The CLI can create services (`railway add`) but cannot rename them or change icons. Use GraphQL:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
scripts/railway-api.sh \
|
|
116
|
+
'mutation updateService($id: String!, $input: ServiceUpdateInput!) {
|
|
117
|
+
serviceUpdate(id: $id, input: $input) { id name icon }
|
|
118
|
+
}' \
|
|
119
|
+
'{"id":"<service-id>","input":{"name":"new-name"}}'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
`ServiceUpdateInput` fields: `name`, `icon` (image URL, animated GIF, or devicons URL like `https://devicons.railway.app/postgres`).
|
|
123
|
+
|
|
124
|
+
Get the service ID from `railway service list --json`.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
## Service creation via GraphQL
|
|
128
|
+
|
|
129
|
+
Prefer `railway add` for most cases. Use GraphQL for programmatic or advanced use:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
scripts/railway-api.sh \
|
|
133
|
+
'mutation createService($input: ServiceCreateInput!) {
|
|
134
|
+
serviceCreate(input: $input) { id name }
|
|
135
|
+
}' \
|
|
136
|
+
'{"input":{"projectId":"<project-id>","name":"my-service","source":{"image":"nginx:latest"}}}'
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`ServiceCreateInput` fields:
|
|
140
|
+
|
|
141
|
+
| Field | Type | Description |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| `projectId` | String! | Target project (required) |
|
|
144
|
+
| `name` | String | Service name (auto-generated if omitted) |
|
|
145
|
+
| `source.image` | String | Docker image (for example, `nginx:latest`) |
|
|
146
|
+
| `source.repo` | String | GitHub repo (for example, `user/repo`) |
|
|
147
|
+
| `branch` | String | Git branch for repo source |
|
|
148
|
+
| `environmentId` | String | Create only in a specific environment |
|
|
149
|
+
|
|
150
|
+
After creating a service via GraphQL, configure it with a JSON config patch including `isCreated: true` (see [configure.md](configure.md)).
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## Metrics queries
|
|
154
|
+
|
|
155
|
+
Use `railway metrics` for routine metric checks. Use GraphQL only when you need custom measurements, grouping, sample rates, or averaging windows that the CLI doesn't expose.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
scripts/railway-api.sh \
|
|
159
|
+
'query metrics($environmentId: String!, $serviceId: String, $startDate: DateTime!, $endDate: DateTime, $sampleRateSeconds: Int, $averagingWindowSeconds: Int, $groupBy: [MetricTag!], $measurements: [MetricMeasurement!]!) {
|
|
160
|
+
metrics(environmentId: $environmentId, serviceId: $serviceId, startDate: $startDate, endDate: $endDate, sampleRateSeconds: $sampleRateSeconds, averagingWindowSeconds: $averagingWindowSeconds, groupBy: $groupBy, measurements: $measurements) {
|
|
161
|
+
measurement tags { serviceId deploymentId region } values { ts value }
|
|
162
|
+
}
|
|
163
|
+
}' \
|
|
164
|
+
'{"environmentId":"<env-id>","serviceId":"<service-id>","startDate":"2026-02-19T00:00:00Z","measurements":["CPU_USAGE","MEMORY_USAGE_GB"]}'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Available `MetricMeasurement` values: `CPU_USAGE`, `CPU_LIMIT`, `MEMORY_USAGE_GB`, `MEMORY_LIMIT_GB`, `NETWORK_RX_GB`, `NETWORK_TX_GB`, `DISK_USAGE_GB`, `EPHEMERAL_DISK_USAGE_GB`, `BACKUP_USAGE_GB`.
|
|
168
|
+
|
|
169
|
+
Optional parameters: `endDate` (defaults to now), `sampleRateSeconds`, `averagingWindowSeconds`. Use `groupBy: ["SERVICE_ID"]` without `serviceId` to query all services in an environment at once. Valid `MetricTag` values for `groupBy`: `SERVICE_ID`, `DEPLOYMENT_ID`, `DEPLOYMENT_INSTANCE_ID`, `REGION`.
|
|
170
|
+
|
|
171
|
+
Get the environment ID from `railway status --json`. Get service IDs from `railway service list --json`.
|
|
172
|
+
|
|
173
|
+
## Template search
|
|
174
|
+
|
|
175
|
+
Use the CLI for template search:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
railway templates search redis --verified true --json
|
|
179
|
+
railway templates search --category database --limit 10 --json
|
|
180
|
+
railway templates search --after <cursor> --json
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The CLI search command doesn't require authentication and supports pagination with `pageInfo.endCursor`.
|
|
184
|
+
|
|
185
|
+
Use GraphQL only when the CLI output isn't enough for the workflow:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
scripts/railway-api.sh \
|
|
189
|
+
'query templates($query: String!, $verified: Boolean, $recommended: Boolean) {
|
|
190
|
+
templates(query: $query, verified: $verified, recommended: $recommended) {
|
|
191
|
+
edges { node { code name description category } }
|
|
192
|
+
}
|
|
193
|
+
}' \
|
|
194
|
+
'{"query":"redis","verified":true}'
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
| Parameter | Type | Description |
|
|
198
|
+
|---|---|---|
|
|
199
|
+
| `query` | String | Search term |
|
|
200
|
+
| `verified` | Boolean | Only verified templates |
|
|
201
|
+
| `recommended` | Boolean | Only recommended templates |
|
|
202
|
+
| `first` | Int | Number of results |
|
|
203
|
+
|
|
204
|
+
Common template codes: `ghost`, `strapi`, `minio`, `n8n`, `uptime-kuma`, `umami`, `postgres`, `redis`, `mysql`, `mongodb`.
|
|
205
|
+
|
|
206
|
+
Deploy a found template via CLI:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
railway deploy --template <template-code>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### GraphQL template deployment
|
|
213
|
+
|
|
214
|
+
For deploying into a specific environment or tracking the workflow, use the two-step GraphQL flow:
|
|
215
|
+
|
|
216
|
+
**Step 1**: Fetch the template config:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
scripts/railway-api.sh \
|
|
220
|
+
'query template($code: String!) {
|
|
221
|
+
template(code: $code) { id serializedConfig }
|
|
222
|
+
}' \
|
|
223
|
+
'{"code":"postgres"}'
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Step 2**: Deploy with `templateDeployV2`:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
scripts/railway-api.sh \
|
|
230
|
+
'mutation deploy($input: TemplateDeployV2Input!) {
|
|
231
|
+
templateDeployV2(input: $input) { projectId workflowId }
|
|
232
|
+
}' \
|
|
233
|
+
'{"input":{
|
|
234
|
+
"templateId":"<id-from-step-1>",
|
|
235
|
+
"serializedConfig":<config-object-from-step-1>,
|
|
236
|
+
"projectId":"<project-id>",
|
|
237
|
+
"environmentId":"<env-id>",
|
|
238
|
+
"workspaceId":"<workspace-id>"
|
|
239
|
+
}}'
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
`serializedConfig` is the raw JSON object from the template query, not a string. Get `workspaceId` via `scripts/railway-api.sh 'query { project(id: "<project-id>") { workspaceId } }' '{}'`.
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
## Validated against
|
|
246
|
+
|
|
247
|
+
- Docs: [api docs](https://docs.railway.com/api/llms-docs.md), [community.md](https://docs.railway.com/community), [cli/docs.md](https://docs.railway.com/cli/docs), [templates.md](https://docs.railway.com/cli/templates), [metrics.md](https://docs.railway.com/cli/metrics)
|
|
248
|
+
- CLI source: [docs.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/docs.rs), [templates.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/templates.rs), [metrics.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/metrics.rs)
|