opencode-skills-collection 4.0.68 → 4.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gcp-cloud-functions
|
|
3
|
+
description: Deploy serverless functions on Google Cloud Functions. Configure triggers
|
|
4
|
+
and manage deployments. Use when implementing serverless workloads on GCP.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# GCP Cloud Functions
|
|
21
|
+
|
|
22
|
+
Build and deploy event-driven serverless applications with Google Cloud Functions (Gen1 and Gen2).
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- Processing webhooks, API endpoints, or lightweight HTTP backends
|
|
27
|
+
- Reacting to events from Pub/Sub, Cloud Storage, Firestore, or Eventarc
|
|
28
|
+
- Running scheduled tasks (cron) without maintaining a server
|
|
29
|
+
- Building data-processing pipelines triggered by file uploads
|
|
30
|
+
- Prototyping microservices before committing to Cloud Run or GKE
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
|
|
34
|
+
- Google Cloud SDK (`gcloud`) installed and authenticated
|
|
35
|
+
- APIs enabled: Cloud Functions, Cloud Build, Artifact Registry, Cloud Run (Gen2)
|
|
36
|
+
- IAM role `roles/cloudfunctions.developer` (or `roles/run.developer` for Gen2)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
gcloud services enable cloudfunctions.googleapis.com cloudbuild.googleapis.com \
|
|
40
|
+
artifactregistry.googleapis.com run.googleapis.com eventarc.googleapis.com
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Gen1 vs Gen2 Comparison
|
|
44
|
+
|
|
45
|
+
| Feature | Gen1 | Gen2 (recommended) |
|
|
46
|
+
|---------|------|---------------------|
|
|
47
|
+
| Runtime | Cloud Functions infra | Built on Cloud Run |
|
|
48
|
+
| Max timeout | 9 minutes | 60 minutes |
|
|
49
|
+
| Max memory | 8 GB | 32 GB |
|
|
50
|
+
| Concurrency | 1 request/instance | Up to 1000/instance |
|
|
51
|
+
| Traffic splitting | No | Yes |
|
|
52
|
+
| Eventarc triggers | No | Yes |
|
|
53
|
+
|
|
54
|
+
## Deploy an HTTP Function (Gen2)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Python HTTP function
|
|
58
|
+
gcloud functions deploy hello-http \
|
|
59
|
+
--gen2 --region=us-central1 --runtime=python312 \
|
|
60
|
+
--trigger-http --allow-unauthenticated \
|
|
61
|
+
--entry-point=hello_http \
|
|
62
|
+
--memory=256Mi --timeout=60s \
|
|
63
|
+
--min-instances=0 --max-instances=100 \
|
|
64
|
+
--set-env-vars=APP_ENV=production --source=.
|
|
65
|
+
|
|
66
|
+
# Node.js HTTP function
|
|
67
|
+
gcloud functions deploy hello-node \
|
|
68
|
+
--gen2 --region=us-central1 --runtime=nodejs20 \
|
|
69
|
+
--trigger-http --allow-unauthenticated \
|
|
70
|
+
--entry-point=helloNode --memory=256Mi --source=.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Deploy a Pub/Sub Triggered Function
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
gcloud pubsub topics create order-events
|
|
77
|
+
|
|
78
|
+
gcloud functions deploy process-order \
|
|
79
|
+
--gen2 --region=us-central1 --runtime=python312 \
|
|
80
|
+
--trigger-topic=order-events \
|
|
81
|
+
--entry-point=process_order \
|
|
82
|
+
--memory=512Mi --timeout=120s --retry \
|
|
83
|
+
--service-account=order-processor@${PROJECT_ID}.iam.gserviceaccount.com \
|
|
84
|
+
--source=.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Deploy a Cloud Storage Triggered Function
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
gcloud functions deploy process-upload \
|
|
91
|
+
--gen2 --region=us-central1 --runtime=python312 \
|
|
92
|
+
--trigger-event-filters="type=google.cloud.storage.object.v1.finalized" \
|
|
93
|
+
--trigger-event-filters="bucket=my-upload-bucket" \
|
|
94
|
+
--entry-point=process_upload \
|
|
95
|
+
--memory=1Gi --timeout=300s --source=.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Deploy a Scheduled Function
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
gcloud functions deploy daily-cleanup \
|
|
102
|
+
--gen2 --region=us-central1 --runtime=python312 \
|
|
103
|
+
--trigger-http --no-allow-unauthenticated \
|
|
104
|
+
--entry-point=daily_cleanup --source=.
|
|
105
|
+
|
|
106
|
+
gcloud scheduler jobs create http daily-cleanup-job \
|
|
107
|
+
--schedule="0 2 * * *" \
|
|
108
|
+
--uri="https://us-central1-${PROJECT_ID}.cloudfunctions.net/daily-cleanup" \
|
|
109
|
+
--http-method=POST \
|
|
110
|
+
--oidc-service-account-email=scheduler-sa@${PROJECT_ID}.iam.gserviceaccount.com \
|
|
111
|
+
--location=us-central1
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Python Function Examples
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
# main.py
|
|
118
|
+
import functions_framework
|
|
119
|
+
import base64, json
|
|
120
|
+
from flask import jsonify
|
|
121
|
+
from google.cloud import firestore
|
|
122
|
+
|
|
123
|
+
@functions_framework.http
|
|
124
|
+
def hello_http(request):
|
|
125
|
+
"""HTTP Cloud Function."""
|
|
126
|
+
name = request.args.get("name", "World")
|
|
127
|
+
return jsonify({"message": f"Hello, {name}!", "status": "ok"}), 200
|
|
128
|
+
|
|
129
|
+
@functions_framework.cloud_event
|
|
130
|
+
def process_order(cloud_event):
|
|
131
|
+
"""Triggered by a Pub/Sub message."""
|
|
132
|
+
data = base64.b64decode(cloud_event.data["message"]["data"]).decode("utf-8")
|
|
133
|
+
order = json.loads(data)
|
|
134
|
+
db = firestore.Client()
|
|
135
|
+
db.collection("orders").document(order["id"]).set({
|
|
136
|
+
"status": "processing", "items": order["items"], "total": order["total"],
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
@functions_framework.cloud_event
|
|
140
|
+
def process_upload(cloud_event):
|
|
141
|
+
"""Triggered when a file is uploaded to Cloud Storage."""
|
|
142
|
+
data = cloud_event.data
|
|
143
|
+
bucket_name, file_name = data["bucket"], data["name"]
|
|
144
|
+
if not file_name.lower().endswith((".png", ".jpg", ".jpeg")):
|
|
145
|
+
return
|
|
146
|
+
from google.cloud import vision
|
|
147
|
+
client = vision.ImageAnnotatorClient()
|
|
148
|
+
image = vision.Image(source=vision.ImageSource(
|
|
149
|
+
gcs_image_uri=f"gs://{bucket_name}/{file_name}"))
|
|
150
|
+
labels = [l.description for l in client.label_detection(image=image).label_annotations]
|
|
151
|
+
print(f"Labels for {file_name}: {labels}")
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
# requirements.txt
|
|
156
|
+
functions-framework==3.*
|
|
157
|
+
google-cloud-firestore==2.*
|
|
158
|
+
google-cloud-storage==2.*
|
|
159
|
+
google-cloud-vision==3.*
|
|
160
|
+
flask>=2.0
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Node.js Function Examples
|
|
164
|
+
|
|
165
|
+
```javascript
|
|
166
|
+
// index.js
|
|
167
|
+
const functions = require("@google-cloud/functions-framework");
|
|
168
|
+
|
|
169
|
+
functions.http("helloNode", (req, res) => {
|
|
170
|
+
const name = req.query.name || "World";
|
|
171
|
+
res.json({ message: `Hello, ${name}!`, status: "ok" });
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
functions.cloudEvent("processMessage", (cloudEvent) => {
|
|
175
|
+
const data = Buffer.from(cloudEvent.data.message.data, "base64").toString();
|
|
176
|
+
console.log(`Processing: ${JSON.parse(data)}`);
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Managing Deployed Functions
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
gcloud functions list --gen2 --region=us-central1
|
|
184
|
+
gcloud functions describe hello-http --gen2 --region=us-central1
|
|
185
|
+
gcloud functions logs read hello-http --gen2 --region=us-central1 --limit=50
|
|
186
|
+
gcloud functions delete hello-http --gen2 --region=us-central1 --quiet
|
|
187
|
+
|
|
188
|
+
# Update env vars without redeploying code
|
|
189
|
+
gcloud functions deploy hello-http --gen2 --region=us-central1 \
|
|
190
|
+
--update-env-vars=APP_ENV=staging
|
|
191
|
+
|
|
192
|
+
# Test locally before deploying
|
|
193
|
+
functions-framework --target=hello_http --port=8080
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Terraform Configuration
|
|
197
|
+
|
|
198
|
+
```hcl
|
|
199
|
+
resource "google_cloudfunctions2_function" "api" {
|
|
200
|
+
name = "hello-http"
|
|
201
|
+
location = "us-central1"
|
|
202
|
+
|
|
203
|
+
build_config {
|
|
204
|
+
runtime = "python312"
|
|
205
|
+
entry_point = "hello_http"
|
|
206
|
+
source {
|
|
207
|
+
storage_source {
|
|
208
|
+
bucket = google_storage_bucket.source.name
|
|
209
|
+
object = google_storage_bucket_object.source.name
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
service_config {
|
|
215
|
+
min_instance_count = 0
|
|
216
|
+
max_instance_count = 100
|
|
217
|
+
available_memory = "256Mi"
|
|
218
|
+
timeout_seconds = 60
|
|
219
|
+
service_account_email = google_service_account.fn.email
|
|
220
|
+
environment_variables = { APP_ENV = "production" }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
resource "google_cloud_run_service_iam_member" "invoker" {
|
|
225
|
+
location = google_cloudfunctions2_function.api.location
|
|
226
|
+
service = google_cloudfunctions2_function.api.name
|
|
227
|
+
role = "roles/run.invoker"
|
|
228
|
+
member = "allUsers"
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
resource "google_cloudfunctions2_function" "processor" {
|
|
232
|
+
name = "process-order"
|
|
233
|
+
location = "us-central1"
|
|
234
|
+
|
|
235
|
+
build_config {
|
|
236
|
+
runtime = "python312"
|
|
237
|
+
entry_point = "process_order"
|
|
238
|
+
source {
|
|
239
|
+
storage_source {
|
|
240
|
+
bucket = google_storage_bucket.source.name
|
|
241
|
+
object = google_storage_bucket_object.source.name
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
service_config {
|
|
247
|
+
max_instance_count = 50
|
|
248
|
+
available_memory = "512Mi"
|
|
249
|
+
timeout_seconds = 120
|
|
250
|
+
service_account_email = google_service_account.fn.email
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
event_trigger {
|
|
254
|
+
trigger_region = "us-central1"
|
|
255
|
+
event_type = "google.cloud.pubsub.topic.v1.messagePublished"
|
|
256
|
+
pubsub_topic = google_pubsub_topic.orders.id
|
|
257
|
+
retry_policy = "RETRY_POLICY_RETRY"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Troubleshooting
|
|
263
|
+
|
|
264
|
+
| Symptom | Cause | Fix |
|
|
265
|
+
|---------|-------|-----|
|
|
266
|
+
| `PERMISSION_DENIED` on deploy | Missing Cloud Build or Artifact Registry perms | Grant `roles/cloudbuild.builds.builder` to Cloud Build SA |
|
|
267
|
+
| Function deploys but returns 403 | Missing `roles/run.invoker` for Gen2 | Add `--allow-unauthenticated` or grant invoker role |
|
|
268
|
+
| Cold start latency > 5s | Large dependencies or no min instances | Set `--min-instances=1`; reduce deps; use lazy imports |
|
|
269
|
+
| Pub/Sub messages redelivered | Function errors or times out | Increase `--timeout`; fix error handling; add dead-letter topic |
|
|
270
|
+
| `Build failed` during deploy | Syntax error or missing dependency | Check `gcloud builds log`; verify requirements.txt |
|
|
271
|
+
| Cannot connect to VPC resource | Function not on VPC connector | Add `--vpc-connector=my-connector` to deploy |
|
|
272
|
+
|
|
273
|
+
## Related Skills
|
|
274
|
+
|
|
275
|
+
- **gcp-networking** - VPC connectors for accessing private resources from functions
|
|
276
|
+
- **gcp-cloud-sql** - Connecting Cloud Functions to managed databases
|
|
277
|
+
- **terraform-gcp** - Deploy Cloud Functions with Infrastructure as Code
|
|
278
|
+
- **gcp-gke** - When workloads outgrow serverless and need Kubernetes
|
|
279
|
+
|
|
280
|
+
## Limitations
|
|
281
|
+
|
|
282
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
283
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
284
|
+
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gcp-cloud-sql
|
|
3
|
+
description: Provision Cloud SQL and Spanner databases. Configure high availability,
|
|
4
|
+
backups, and security. Use when deploying managed databases on GCP.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# GCP Cloud SQL
|
|
21
|
+
|
|
22
|
+
Deploy and manage fully managed relational databases (PostgreSQL, MySQL, SQL Server) on Google Cloud.
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- Running production relational databases without managing replication, patching, or backups
|
|
27
|
+
- Migrating on-premises PostgreSQL or MySQL workloads to a managed service
|
|
28
|
+
- Applications requiring ACID transactions, relational schemas, and SQL query support
|
|
29
|
+
- Workloads that need automated high availability with regional failover
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- Google Cloud SDK (`gcloud`) installed and authenticated
|
|
34
|
+
- Cloud SQL Admin API and Service Networking API enabled
|
|
35
|
+
- IAM role `roles/cloudsql.admin` for full management
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
gcloud services enable sqladmin.googleapis.com servicenetworking.googleapis.com
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Instance Tiers Reference
|
|
42
|
+
|
|
43
|
+
| Tier | vCPUs | Memory | Use Case |
|
|
44
|
+
|------|-------|--------|----------|
|
|
45
|
+
| db-f1-micro | Shared | 0.6 GB | Dev/test only |
|
|
46
|
+
| db-g1-small | Shared | 1.7 GB | Low-traffic staging |
|
|
47
|
+
| db-custom-2-8192 | 2 | 8 GB | Small production |
|
|
48
|
+
| db-custom-4-16384 | 4 | 16 GB | Medium production |
|
|
49
|
+
| db-custom-8-32768 | 8 | 32 GB | High-traffic production |
|
|
50
|
+
|
|
51
|
+
## Create a PostgreSQL Instance
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
gcloud sql instances create prod-db \
|
|
55
|
+
--database-version=POSTGRES_16 \
|
|
56
|
+
--tier=db-custom-4-16384 \
|
|
57
|
+
--region=us-central1 \
|
|
58
|
+
--availability-type=REGIONAL \
|
|
59
|
+
--storage-type=SSD --storage-size=100GB --storage-auto-increase \
|
|
60
|
+
--backup-start-time=02:00 --enable-point-in-time-recovery \
|
|
61
|
+
--retained-backups-count=14 \
|
|
62
|
+
--maintenance-window-day=SUN --maintenance-window-hour=4 \
|
|
63
|
+
--database-flags=max_connections=200,log_min_duration_statement=1000 \
|
|
64
|
+
--root-password=$(openssl rand -base64 24) \
|
|
65
|
+
--labels=env=production,team=backend
|
|
66
|
+
|
|
67
|
+
gcloud sql databases create myapp --instance=prod-db --charset=UTF8
|
|
68
|
+
gcloud sql users create appuser --instance=prod-db \
|
|
69
|
+
--password=$(openssl rand -base64 24)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Create a MySQL Instance
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
gcloud sql instances create mysql-prod \
|
|
76
|
+
--database-version=MYSQL_8_0 \
|
|
77
|
+
--tier=db-custom-4-16384 --region=us-central1 \
|
|
78
|
+
--availability-type=REGIONAL \
|
|
79
|
+
--storage-type=SSD --storage-size=100GB --storage-auto-increase \
|
|
80
|
+
--backup-start-time=02:00 --enable-bin-log --retained-backups-count=14 \
|
|
81
|
+
--database-flags=slow_query_log=on,long_query_time=2,max_connections=500 \
|
|
82
|
+
--root-password=$(openssl rand -base64 24)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Private IP Configuration
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Allocate IP range and create private connection
|
|
89
|
+
gcloud compute addresses create google-managed-services \
|
|
90
|
+
--global --purpose=VPC_PEERING --prefix-length=16 --network=my-vpc
|
|
91
|
+
|
|
92
|
+
gcloud services vpc-peerings connect \
|
|
93
|
+
--service=servicenetworking.googleapis.com \
|
|
94
|
+
--ranges=google-managed-services --network=my-vpc
|
|
95
|
+
|
|
96
|
+
# Create instance with private IP only
|
|
97
|
+
gcloud sql instances create private-db \
|
|
98
|
+
--database-version=POSTGRES_16 --tier=db-custom-2-8192 \
|
|
99
|
+
--region=us-central1 \
|
|
100
|
+
--network=projects/${PROJECT_ID}/global/networks/my-vpc \
|
|
101
|
+
--no-assign-ip --availability-type=REGIONAL \
|
|
102
|
+
--storage-type=SSD --storage-size=50GB --storage-auto-increase
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Read Replicas
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Same-region replica
|
|
109
|
+
gcloud sql instances create prod-db-replica-1 \
|
|
110
|
+
--master-instance-name=prod-db --tier=db-custom-4-16384 \
|
|
111
|
+
--region=us-central1 --availability-type=ZONAL
|
|
112
|
+
|
|
113
|
+
# Cross-region replica for DR
|
|
114
|
+
gcloud sql instances create prod-db-replica-eu \
|
|
115
|
+
--master-instance-name=prod-db --tier=db-custom-4-16384 \
|
|
116
|
+
--region=europe-west1 --availability-type=ZONAL
|
|
117
|
+
|
|
118
|
+
# Promote a replica to standalone (disaster recovery)
|
|
119
|
+
gcloud sql instances promote-replica prod-db-replica-eu
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Backups and Restore
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
gcloud sql backups create --instance=prod-db --description="pre-migration"
|
|
126
|
+
gcloud sql backups list --instance=prod-db
|
|
127
|
+
|
|
128
|
+
# Point-in-time recovery
|
|
129
|
+
gcloud sql instances clone prod-db prod-db-pitr \
|
|
130
|
+
--point-in-time="2026-03-23T10:00:00Z"
|
|
131
|
+
|
|
132
|
+
# Export / import
|
|
133
|
+
gcloud sql export sql prod-db gs://my-bucket/export.sql.gz --database=myapp
|
|
134
|
+
gcloud sql import sql prod-db gs://my-bucket/export.sql.gz --database=myapp
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Cloud SQL Auth Proxy
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
curl -o cloud-sql-proxy \
|
|
141
|
+
https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.linux.amd64
|
|
142
|
+
chmod +x cloud-sql-proxy
|
|
143
|
+
|
|
144
|
+
./cloud-sql-proxy ${PROJECT_ID}:us-central1:prod-db --port=5432 --auto-iam-authn
|
|
145
|
+
|
|
146
|
+
# Unix socket (for Kubernetes sidecar pattern)
|
|
147
|
+
./cloud-sql-proxy ${PROJECT_ID}:us-central1:prod-db --unix-socket=/tmp/cloudsql
|
|
148
|
+
psql "host=/tmp/cloudsql/${PROJECT_ID}:us-central1:prod-db user=appuser dbname=myapp"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Connection Methods Summary
|
|
152
|
+
|
|
153
|
+
| Method | Use Case | Requirement |
|
|
154
|
+
|--------|----------|-------------|
|
|
155
|
+
| Public IP + SSL | Dev/test access | Authorized networks configured |
|
|
156
|
+
| Cloud SQL Auth Proxy | Production on GCE/GKE | SA with `roles/cloudsql.client` |
|
|
157
|
+
| Private IP | VPC-native apps | VPC peering configured |
|
|
158
|
+
| Cloud SQL Connector lib | App-level integration | SA credentials |
|
|
159
|
+
|
|
160
|
+
## Terraform Configuration
|
|
161
|
+
|
|
162
|
+
```hcl
|
|
163
|
+
resource "google_sql_database_instance" "main" {
|
|
164
|
+
name = "prod-db"
|
|
165
|
+
database_version = "POSTGRES_16"
|
|
166
|
+
region = "us-central1"
|
|
167
|
+
|
|
168
|
+
settings {
|
|
169
|
+
tier = "db-custom-4-16384"
|
|
170
|
+
availability_type = "REGIONAL"
|
|
171
|
+
disk_type = "PD_SSD"
|
|
172
|
+
disk_size = 100
|
|
173
|
+
disk_autoresize = true
|
|
174
|
+
|
|
175
|
+
backup_configuration {
|
|
176
|
+
enabled = true
|
|
177
|
+
start_time = "02:00"
|
|
178
|
+
point_in_time_recovery_enabled = true
|
|
179
|
+
backup_retention_settings { retained_backups = 14 }
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
ip_configuration {
|
|
183
|
+
ipv4_enabled = false
|
|
184
|
+
private_network = google_compute_network.vpc.id
|
|
185
|
+
require_ssl = true
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
maintenance_window { day = 7; hour = 4 }
|
|
189
|
+
database_flags { name = "max_connections"; value = "200" }
|
|
190
|
+
|
|
191
|
+
user_labels = { env = "production" }
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
deletion_protection = true
|
|
195
|
+
depends_on = [google_service_networking_connection.private_vpc]
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
resource "google_sql_database" "app" {
|
|
199
|
+
name = "myapp"
|
|
200
|
+
instance = google_sql_database_instance.main.name
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
resource "google_sql_user" "app" {
|
|
204
|
+
name = "appuser"
|
|
205
|
+
instance = google_sql_database_instance.main.name
|
|
206
|
+
password = random_password.db_password.result
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
resource "google_sql_database_instance" "replica" {
|
|
210
|
+
name = "prod-db-replica-1"
|
|
211
|
+
master_instance_name = google_sql_database_instance.main.name
|
|
212
|
+
region = "us-central1"
|
|
213
|
+
database_version = "POSTGRES_16"
|
|
214
|
+
|
|
215
|
+
replica_configuration { failover_target = false }
|
|
216
|
+
|
|
217
|
+
settings {
|
|
218
|
+
tier = "db-custom-4-16384"
|
|
219
|
+
disk_type = "PD_SSD"
|
|
220
|
+
disk_autoresize = true
|
|
221
|
+
ip_configuration {
|
|
222
|
+
ipv4_enabled = false
|
|
223
|
+
private_network = google_compute_network.vpc.id
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
resource "google_compute_global_address" "private_ip" {
|
|
229
|
+
name = "google-managed-services"
|
|
230
|
+
purpose = "VPC_PEERING"
|
|
231
|
+
address_type = "INTERNAL"
|
|
232
|
+
prefix_length = 16
|
|
233
|
+
network = google_compute_network.vpc.id
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
resource "google_service_networking_connection" "private_vpc" {
|
|
237
|
+
network = google_compute_network.vpc.id
|
|
238
|
+
service = "servicenetworking.googleapis.com"
|
|
239
|
+
reserved_peering_ranges = [google_compute_global_address.private_ip.name]
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## Common Operations
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
gcloud sql instances list
|
|
247
|
+
gcloud sql instances describe prod-db \
|
|
248
|
+
--format="yaml(state,settings.tier,settings.availabilityType,ipAddresses)"
|
|
249
|
+
gcloud sql instances patch prod-db --storage-size=200GB
|
|
250
|
+
gcloud sql instances patch prod-db --database-flags=max_connections=300
|
|
251
|
+
gcloud sql instances restart prod-db
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Troubleshooting
|
|
255
|
+
|
|
256
|
+
| Symptom | Cause | Fix |
|
|
257
|
+
|---------|-------|-----|
|
|
258
|
+
| `Connection refused` via public IP | IP not in authorized networks | Add IP with `gcloud sql instances patch --authorized-networks` |
|
|
259
|
+
| `SSL required` error | `require_ssl=true` but client not using SSL | Use Cloud SQL Proxy or pass `sslmode=require` |
|
|
260
|
+
| High replication lag | Replica tier too small or write-heavy primary | Increase replica tier; reduce write load |
|
|
261
|
+
| Instance slow despite RUNNABLE | Under-provisioned CPU/memory | Scale tier with `gcloud sql instances patch --tier` |
|
|
262
|
+
| Proxy returns `ECONNREFUSED` | Wrong connection name or missing IAM role | Verify `project:region:instance` format; grant `roles/cloudsql.client` |
|
|
263
|
+
| Cannot create private IP instance | VPC peering not established | Run `gcloud services vpc-peerings connect` first |
|
|
264
|
+
| Backup restore fails | Incompatible version | Ensure same major database version between source and target |
|
|
265
|
+
|
|
266
|
+
## Related Skills
|
|
267
|
+
|
|
268
|
+
- **gcp-networking** - VPC and private service connect for Cloud SQL private IP
|
|
269
|
+
- **terraform-gcp** - Provision Cloud SQL with Infrastructure as Code
|
|
270
|
+
- **gcp-gke** - Connecting Kubernetes workloads to Cloud SQL via sidecar proxy
|
|
271
|
+
- **gcp-compute** - Running applications on Compute Engine that connect to Cloud SQL
|
|
272
|
+
|
|
273
|
+
## Limitations
|
|
274
|
+
|
|
275
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
276
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
277
|
+
|