跳到主要内容
知仓学习社ZHICANG

sealos-database

Provision, connect, and operate Sealos Cloud databases through sealos-cli for local development, Devbox development, and app setup. Use when the use…

读凭据读文件严重 18 · 高危 0hashgraph-online/awesome-codex-plugins

它会碰到什么

扫了多少6 个文本文件,31 KB
它会碰到什么读凭据读文件
命中总数21 处
命中统计严重 18 · 高 0 · 中 3 · 低 0
逐条看命中(18 条严重或高危)
  • 严重 references/env-integration.md:9cred-paths
    1. `.env.local` for Next.js and similar local-only app config.
  • 严重 references/env-integration.md:10cred-paths
    2. `.env` when the repo already uses it for local development and it is ignored by git.
  • 严重 references/env-integration.md:11cred-paths
    3. Framework-specific files such as `.dev.vars`, `.env.development`, or `apps/*/.env.local` when the code already reads them.
  • 严重 references/env-integration.md:11cred-paths
    3. Framework-specific files such as `.dev.vars`, `.env.development`, or `apps/*/.env.local` when the code already reads them.
  • 严重 references/env-integration.md:12cred-paths
    4. `.env.example` only for placeholder documentation. Never write real secrets into example files.
  • 严重 references/env-integration.md:17cred-paths
    git check-ignore .env .env.local .env.development
  • 严重 references/env-integration.md:17cred-paths
    git check-ignore .env .env.local .env.development
  • 严重 references/env-integration.md:17cred-paths
    git check-ignore .env .env.local .env.development
  • 严重 scripts/analyze-project-database.mjs:33cred-paths
    /^\.env.*$/,
  • 严重 scripts/analyze-project-database.mjs:34cred-paths
    /^.*\.env$/,
  • 严重 scripts/analyze-project-database.mjs:170cred-paths
    if (/^\.env|\.env$/.test(name) || name.includes('.env.')) return 5
  • 严重 scripts/analyze-project-database.mjs:170cred-paths
    if (/^\.env|\.env$/.test(name) || name.includes('.env.')) return 5
  • 严重 scripts/analyze-project-database.mjs:170cred-paths
    if (/^\.env|\.env$/.test(name) || name.includes('.env.')) return 5
  • 严重 scripts/analyze-project-database.mjs:188cred-paths
    if (!/^\.env|\.env$/.test(name) && !name.includes('.env.')) continue
  • 严重 scripts/analyze-project-database.mjs:188cred-paths
    if (!/^\.env|\.env$/.test(name) && !name.includes('.env.')) continue
  • 严重 scripts/analyze-project-database.mjs:188cred-paths
    if (!/^\.env|\.env$/.test(name) && !name.includes('.env.')) continue
  • 严重 SKILL.md:164cred-paths
    1. Prefer `.env.local` for Next.js and frontend-adjacent projects.
  • 严重 SKILL.md:165cred-paths
    2. Prefer `.env` only when the repo already uses it for local development and it is gitignored.

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Sealos Database

Identity and Discovery

  • Owner: sealos-database (/sealos-database and database create, connect, backup, logs, or access requests).
  • Class: cloud-local-mutation through sealos-cli, with an optional redacted handoff to deployment.
  • Canaries: DB-REUSE-ENV, DB-CONFIRM-PUBLIC, and DB-REDACT-CONNECT.

Scope and Boundaries

Accept a project path and database intent. Analyze first, list existing databases, create or reuse the selected type, and wire only the existing application env key. Preserve prior env values and local Compose rollback; private access is the default. Database deletion, public access, backup deletion, restore collisions, and disabling active access remain gated operations.

Risk and Confirmation

Never print passwords, full connection strings, kubeconfig, auth files, or copied env values. Ask before public access or destructive operations and state the private alternative. Parse JSON CLI output and keep the selected workspace, namespace, database, and env mutation scoped to the request.

Lifecycle Workflow

For each request, resolve the project, analyze its database need, confirm CLI/auth/region/workspace, list before create/reuse, fetch connection details, wire the existing env key, and verify connectivity or migrations. Emit request-scoped success, stopped, or error; the existing analyzer-first workflow remains the domain extension below. Workspace ambiguity, an unavailable credential response, or a tracked env target stops the request before mutation.

Request Contract

input:
  project: local path or repository source
  intent: database type, purpose, and create-or-reuse preference
  access: private by default; public only after confirmation
preconditions:
  - analyzer evidence names the database signal and env key
  - sealos-cli/auth/region/workspace are resolved
  - the selected env file is ignored and the key is known

The ordered action is analyze -> resolve account/workspace -> list -> create or reuse -> wait -> fetch -> wire -> verify. The selected workspace, namespace, database identity, and env mutation remain request-scoped.

Progressive Disclosure

Load the analyzer, CLI, env-wiring, and connectivity procedures one level deep when their phase is reached. Keep credential-handling and public/destructive confirmation visible here even when detailed commands live in owned scripts or references.

Output, Stop, and Error States

  • success: database identity/status, region/workspace, env file and key names, redacted connectivity or migration evidence, confirmation state, and any follow-up access state.
  • stopped: ambiguous workspace, unavailable credential readiness, tracked env target, public/destructive confirmation boundary, or missing precondition with the safe next action; no gated mutation is claimed.
  • error: analyzer, CLI, connection, or env-write step, sanitized diagnostic category, affected artifact, and recovery action with passwords, URLs, auth values, and complete connection strings redacted.

Handoffs

An optional deployment handoff uses the complete tuple below. The receiver re-checks deployment scope and runtime evidence.

target: sealos-deploy
inputArtifact: redacted database identity, private-access status, approved env-key contract, and connectivity/migration evidence
allowedAction: consume approved Secret/env references within the selected deployment scope
failureReturn: sanitized analyzer, CLI, env, or connectivity diagnostic with the failed phase
responseOwner: sealos-database

Direct database requests use target: none and keep the same evidence fields.

Verification

Use analyze-project-database.mjs, sealos-cli JSON output, app migration/connectivity evidence, and baseline cases database-positive-reuse-redacted-connectivity and database-violating-unconfirmed-public-or-destructive. Verify env preservation and redaction before accepting success.

Use this skill to give a project a real Sealos Cloud database during development. The default outcome is: identify the app's database need, create or reuse a Sealos database with sealos-cli, fetch connection details, wire only the needed local env vars, and verify the app can connect.

Safety Rules

  1. Never print database passwords or full connection strings in the final answer.
  2. Do not overwrite an existing env value without confirming or preserving the old value.
  3. Do not commit .env, .env.local, connection strings, passwords, kubeconfig, or Sealos auth files.
  4. Ask before enabling public database access. Prefer private connections when the app runs inside Sealos/Devbox.
  5. Ask before destructive operations: database delete, backup-delete, restoring over a name that may collide, or disabling access that an active app depends on.
  6. Use JSON output from sealos-cli by default and parse it instead of scraping table output.

Workflow

1. Resolve the target project

Confirm the working directory with pwd or git rev-parse --show-toplevel.

Run the analyzer when a project directory is available:

node <SKILL_DIR>/scripts/analyze-project-database.mjs <project-dir>

Use the analyzer result as a starting point, then inspect the real files it cites before editing anything. It intentionally avoids printing secret values.

2. Check sealos-cli

Prefer an existing sealos-cli binary:

sealos-cli --version
sealos-cli database --help
sealos-cli whoami

If it is not installed, use npx -y sealos-cli@latest ... for one-off commands. Ask before installing it globally.

If auth is missing or expired, run:

sealos-cli login <region>
sealos-cli workspace list
sealos-cli workspace current

Use the workspace the user expects. If multiple workspaces exist and the target is ambiguous, ask before provisioning.

3. Choose create or reuse

List existing databases first:

sealos-cli database list -o json

Reuse an existing database when the name, type, and purpose match. Create a new one when the project has no suitable database or the user asks for a fresh dev database.

Use conservative development defaults unless the project clearly needs more:

sealos-cli database create postgresql --name <app-dev-db> --cpu 1 --memory 1 --storage 3 --replicas 1 -o json

Before creating, check supported versions if version choice matters:

sealos-cli database versions --type postgresql -o json

Supported CLI database types include postgresql, mongodb, mysql, apecloud-mysql, redis, kafka, qdrant, nebula, weaviate, milvus, pulsar, and clickhouse. Use the type detected from the project; default to postgresql only when the project has no database-specific signals.

4. Wait for readiness and fetch connection data

Poll details until the database is running or connection data is present:

sealos-cli database get <name> -o json
sealos-cli database connection <name> -o json

Read references/sealos-cli-database.md for the current command contract and response handling.

5. Wire the development environment

Map the connection into the env var the project already uses:

| Project signal | Preferred env key |

| --- | --- |

| Prisma, Drizzle, TypeORM, generic Postgres | DATABASE_URL |

| MySQL app with existing MySQL-specific config | DATABASE_URL or existing MYSQL_URL |

| MongoDB app | MONGODB_URI |

| Redis cache/queue | REDIS_URL |

Use the existing local env convention:

  1. Prefer .env.local for Next.js and frontend-adjacent projects.
  2. Prefer .env only when the repo already uses it for local development and it is gitignored.
  3. Treat .env.example as documentation only; never write real secrets there.
  4. Preserve comments and unrelated keys.

If a connection string is not directly returned in the desired form, compose it from host, port, username, and password fields from sealos-cli database connection.

6. Verify application connectivity

Run the project's normal verification path, not just the CLI command:

  1. Run migrations or introspection if the project has a clear command (prisma migrate, drizzle-kit migrate, db:migrate, db:push).
  2. Start the app or run the smallest test that opens a DB connection.
  3. If the app runs outside Sealos and cannot reach the private endpoint, ask before enabling public access:
sealos-cli database enable-public <name> -o json
sealos-cli database connection <name> -o json

Disable public access after testing if it is no longer needed:

sealos-cli database disable-public <name> -o json

7. Report the result

Summarize:

  1. Database name, type, region/workspace, and status.
  2. Env file and key updated, without revealing the secret value.
  3. Verification command and outcome.
  4. Any public access state and follow-up action.

Common Tasks

Connect an existing project to a Sealos database

  1. Run the analyzer.
  2. Inspect the env/config files it cites.
  3. List existing Sealos databases.
  4. Create or reuse the matching database.
  5. Fetch connection details.
  6. Write the expected env key.
  7. Run the app's DB verification.

Replace a local Compose database for development

  1. Identify the app service env vars that point at postgres, mysql, mongo, or redis compose services.
  2. Provision the equivalent Sealos database.
  3. Update only the app's local env file, not the compose file, unless the user asks to remove the local service.
  4. Keep local Compose rollback simple: the original compose service remains available.

Add a database to a Devbox workflow

  1. Use private database connection details when the Devbox runs in the same Sealos workspace.
  2. Write env vars into the Devbox/app environment expected by the repo.
  3. Restart or reload the Devbox process only after env vars are in place.

References

  • scripts/analyze-project-database.mjs - read-only project database intent analyzer.
  • references/sealos-cli-database.md - sealos-cli database command contract.
  • references/env-integration.md - safe env-file editing and connection-string mapping.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。