opencode-skills-collection 4.0.68 → 4.0.69

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.
Files changed (309) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +266 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  19. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  20. package/bundled-skills/arm-templates/SKILL.md +438 -0
  21. package/bundled-skills/arm-templates/references/details.md +64 -0
  22. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  23. package/bundled-skills/asset-inventory/references/details.md +127 -0
  24. package/bundled-skills/audit-logging/SKILL.md +476 -0
  25. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  26. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  27. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  28. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  29. package/bundled-skills/aws-iam/SKILL.md +463 -0
  30. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  31. package/bundled-skills/aws-rds/SKILL.md +380 -0
  32. package/bundled-skills/aws-s3/SKILL.md +434 -0
  33. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  34. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  35. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  36. package/bundled-skills/azure-aks/SKILL.md +423 -0
  37. package/bundled-skills/azure-devops/SKILL.md +457 -0
  38. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  39. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  40. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  41. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  42. package/bundled-skills/azure-networking/SKILL.md +448 -0
  43. package/bundled-skills/azure-networking/references/details.md +135 -0
  44. package/bundled-skills/azure-sql/SKILL.md +413 -0
  45. package/bundled-skills/azure-sql/references/details.md +113 -0
  46. package/bundled-skills/azure-vms/SKILL.md +402 -0
  47. package/bundled-skills/azure-vms/references/details.md +134 -0
  48. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  49. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  50. package/bundled-skills/bb-methodology/references/details.md +120 -0
  51. package/bundled-skills/block-storage/SKILL.md +371 -0
  52. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  53. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  54. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  55. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  56. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  57. package/bundled-skills/business-continuity/SKILL.md +463 -0
  58. package/bundled-skills/career-ops/SKILL.md +186 -0
  59. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  60. package/bundled-skills/change-management/SKILL.md +438 -0
  61. package/bundled-skills/change-management/references/details.md +105 -0
  62. package/bundled-skills/circleci/SKILL.md +475 -0
  63. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  64. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  65. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  66. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  67. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  68. package/bundled-skills/cloudformation/SKILL.md +461 -0
  69. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  70. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  71. package/bundled-skills/container-hardening/SKILL.md +126 -0
  72. package/bundled-skills/container-registries/SKILL.md +435 -0
  73. package/bundled-skills/container-scanning/SKILL.md +416 -0
  74. package/bundled-skills/convex-backend/SKILL.md +338 -0
  75. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  76. package/bundled-skills/database-backups/SKILL.md +425 -0
  77. package/bundled-skills/datadog/SKILL.md +487 -0
  78. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  79. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  80. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  81. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  82. package/bundled-skills/dns-management/SKILL.md +375 -0
  83. package/bundled-skills/docker-compose/SKILL.md +482 -0
  84. package/bundled-skills/docker-management/SKILL.md +426 -0
  85. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  86. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  87. package/bundled-skills/elk-stack/SKILL.md +487 -0
  88. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  89. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  90. package/bundled-skills/feature-flags/SKILL.md +426 -0
  91. package/bundled-skills/feature-flags/references/details.md +86 -0
  92. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  93. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  94. package/bundled-skills/firewall-config/SKILL.md +479 -0
  95. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  96. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  97. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  98. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  99. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  100. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  101. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  102. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  103. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  104. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  105. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  106. package/bundled-skills/geo-audit/SKILL.md +368 -0
  107. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  108. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  109. package/bundled-skills/geo-citability/SKILL.md +350 -0
  110. package/bundled-skills/geo-compare/SKILL.md +340 -0
  111. package/bundled-skills/geo-content/SKILL.md +383 -0
  112. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  113. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  114. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  115. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  116. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  117. package/bundled-skills/geo-report/SKILL.md +436 -0
  118. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  119. package/bundled-skills/geo-schema/SKILL.md +408 -0
  120. package/bundled-skills/geo-technical/SKILL.md +78 -0
  121. package/bundled-skills/geo-technical/references/details.md +543 -0
  122. package/bundled-skills/git-workflow/SKILL.md +460 -0
  123. package/bundled-skills/github-actions/SKILL.md +368 -0
  124. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  125. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  126. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  127. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  128. package/bundled-skills/helm-charts/SKILL.md +469 -0
  129. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  130. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  131. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  132. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  133. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  134. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  135. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  136. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  137. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  138. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  139. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  140. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  141. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  142. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  143. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  144. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  145. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  146. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  147. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  148. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  149. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  150. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  151. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  152. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  153. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  154. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  155. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  156. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  157. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  158. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  159. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  160. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  161. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  162. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  163. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  164. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  165. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  166. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  167. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  168. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  169. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  170. package/bundled-skills/hunt-rce/references/details.md +110 -0
  171. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  172. package/bundled-skills/hunt-session/SKILL.md +342 -0
  173. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  174. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  175. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  176. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  177. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  178. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  179. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  180. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  181. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  182. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  183. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  184. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  185. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  186. package/bundled-skills/identity-access-management/references/details.md +524 -0
  187. package/bundled-skills/incident-management/SKILL.md +484 -0
  188. package/bundled-skills/incident-response/SKILL.md +448 -0
  189. package/bundled-skills/incident-response/references/details.md +113 -0
  190. package/bundled-skills/interview-me/SKILL.md +248 -0
  191. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  192. package/bundled-skills/jenkins/SKILL.md +462 -0
  193. package/bundled-skills/jev-use/SKILL.md +158 -0
  194. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  195. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  196. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  197. package/bundled-skills/kustomize/SKILL.md +478 -0
  198. package/bundled-skills/linux-administration/SKILL.md +367 -0
  199. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  200. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  201. package/bundled-skills/llm-app-security/references/details.md +674 -0
  202. package/bundled-skills/llm-caching/SKILL.md +334 -0
  203. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  204. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  205. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  206. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  207. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  208. package/bundled-skills/load-balancing/SKILL.md +403 -0
  209. package/bundled-skills/loki-logging/SKILL.md +479 -0
  210. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  211. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  212. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  213. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  214. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  215. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  216. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  217. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  218. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  219. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  220. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  221. package/bundled-skills/mongodb/SKILL.md +436 -0
  222. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  223. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  224. package/bundled-skills/mysql/SKILL.md +390 -0
  225. package/bundled-skills/new-relic/SKILL.md +472 -0
  226. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  227. package/bundled-skills/object-storage/SKILL.md +378 -0
  228. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  229. package/bundled-skills/okta-attack/SKILL.md +436 -0
  230. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  231. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  232. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  233. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  234. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  235. package/bundled-skills/openshift/SKILL.md +485 -0
  236. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  237. package/bundled-skills/opentelemetry/references/details.md +78 -0
  238. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  239. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  240. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  241. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  242. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  243. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  244. package/bundled-skills/planetscale/SKILL.md +297 -0
  245. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  246. package/bundled-skills/platform-engineering/references/details.md +944 -0
  247. package/bundled-skills/podman/SKILL.md +405 -0
  248. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  249. package/bundled-skills/policy-as-code/references/details.md +204 -0
  250. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  251. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  252. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  253. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  254. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  255. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  256. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  257. package/bundled-skills/redis/SKILL.md +421 -0
  258. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  259. package/bundled-skills/report-writing/SKILL.md +426 -0
  260. package/bundled-skills/report-writing/references/details.md +187 -0
  261. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  262. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  263. package/bundled-skills/runbook-creation/references/details.md +71 -0
  264. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  265. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  266. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  267. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  268. package/bundled-skills/security-arsenal/references/details.md +540 -0
  269. package/bundled-skills/security-automation/SKILL.md +146 -0
  270. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  271. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  272. package/bundled-skills/service-mesh/SKILL.md +422 -0
  273. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  274. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  275. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  276. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  277. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  278. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  279. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  280. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  281. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  282. package/bundled-skills/systemd-services/SKILL.md +379 -0
  283. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  284. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  285. package/bundled-skills/terraform-azure/references/details.md +231 -0
  286. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  287. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  288. package/bundled-skills/user-management/SKILL.md +383 -0
  289. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  290. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  291. package/bundled-skills/vendor-management/SKILL.md +439 -0
  292. package/bundled-skills/vendor-management/references/details.md +109 -0
  293. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  294. package/bundled-skills/vllm-server/SKILL.md +236 -0
  295. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  296. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  297. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  298. package/bundled-skills/waf-setup/SKILL.md +354 -0
  299. package/bundled-skills/waf-setup/references/details.md +211 -0
  300. package/bundled-skills/web2-recon/SKILL.md +440 -0
  301. package/bundled-skills/web2-recon/references/details.md +319 -0
  302. package/bundled-skills/web3-audit/SKILL.md +445 -0
  303. package/bundled-skills/web3-audit/references/details.md +224 -0
  304. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  305. package/bundled-skills/windows-hardening/references/details.md +204 -0
  306. package/bundled-skills/windows-server/SKILL.md +318 -0
  307. package/bundled-skills/zero-trust/SKILL.md +461 -0
  308. package/package.json +1 -1
  309. package/skills_index.json +6943 -323
@@ -0,0 +1,381 @@
1
+ ---
2
+ name: firebase-app-platform
3
+ description: Build and operate apps on Firebase using Auth, Firestore, Cloud Functions,
4
+ and Hosting. Use when building mobile/web backends with managed services, real-time
5
+ data sync, or serverless APIs.
6
+ category: devops
7
+ risk: critical
8
+ source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
9
+ source_repo: BagelHole/DevOps-Security-Agent-Skills
10
+ source_type: community
11
+ date_added: '2026-09-20'
12
+ license: MIT
13
+ license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
14
+ compatibility: Requires the relevant OS/platform tooling and privileged access where
15
+ noted. Docs-only; helper scripts and templates not bundled.
16
+ metadata:
17
+ author: devops-skills
18
+ version: '1.0'
19
+ ---
20
+
21
+ # Firebase App Platform
22
+
23
+ Ship mobile and web backends with Firebase managed services.
24
+
25
+ ## When to Use This Skill
26
+
27
+ Use this skill when:
28
+ - Building mobile or web apps with real-time data sync
29
+ - Need authentication with minimal backend code
30
+ - Prototyping quickly with managed infrastructure
31
+ - Building serverless APIs with Cloud Functions
32
+ - Hosting static sites or SPAs with CDN
33
+
34
+ ## Prerequisites
35
+
36
+ - Node.js 18+
37
+ - Firebase CLI (`npm install -g firebase-tools`)
38
+ - Google Cloud account (Firebase is part of GCP)
39
+ - A Firebase project (create at console.firebase.google.com)
40
+
41
+ ## Quick Start
42
+
43
+ ```bash
44
+ # Install and authenticate
45
+ npm install -g firebase-tools
46
+ firebase login
47
+
48
+ # Initialize in your project directory
49
+ firebase init
50
+ # Select: Firestore, Functions, Hosting, Emulators
51
+
52
+ # Start local emulators
53
+ firebase emulators:start
54
+
55
+ # Deploy everything
56
+ firebase deploy
57
+
58
+ # Deploy specific services
59
+ firebase deploy --only functions
60
+ firebase deploy --only hosting
61
+ firebase deploy --only firestore:rules
62
+ ```
63
+
64
+ ## Firestore Database
65
+
66
+ ### Security Rules
67
+
68
+ ```javascript
69
+ // firestore.rules
70
+ rules_version = '2';
71
+ service cloud.firestore {
72
+ match /databases/{database}/documents {
73
+ // Users can only read/write their own data
74
+ match /users/{userId} {
75
+ allow read, write: if request.auth != null && request.auth.uid == userId;
76
+ }
77
+
78
+ // Messages: authenticated users can read, only owner can write
79
+ match /channels/{channelId}/messages/{messageId} {
80
+ allow read: if request.auth != null;
81
+ allow create: if request.auth != null
82
+ && request.resource.data.userId == request.auth.uid
83
+ && request.resource.data.body is string
84
+ && request.resource.data.body.size() <= 5000;
85
+ allow update, delete: if request.auth != null
86
+ && resource.data.userId == request.auth.uid;
87
+ }
88
+
89
+ // Admin-only collection
90
+ match /admin/{document=**} {
91
+ allow read, write: if request.auth != null
92
+ && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
93
+ }
94
+
95
+ // Default: deny everything
96
+ match /{document=**} {
97
+ allow read, write: if false;
98
+ }
99
+ }
100
+ }
101
+ ```
102
+
103
+ ### Data Operations
104
+
105
+ ```typescript
106
+ // lib/firestore.ts
107
+ import { getFirestore, collection, doc, setDoc, getDoc,
108
+ query, where, orderBy, limit, onSnapshot,
109
+ serverTimestamp, increment } from "firebase/firestore";
110
+
111
+ const db = getFirestore();
112
+
113
+ // Create document with auto-ID
114
+ async function createMessage(channelId: string, body: string, userId: string) {
115
+ const ref = doc(collection(db, "channels", channelId, "messages"));
116
+ await setDoc(ref, {
117
+ body,
118
+ userId,
119
+ createdAt: serverTimestamp(),
120
+ });
121
+ return ref.id;
122
+ }
123
+
124
+ // Real-time listener
125
+ function subscribeToMessages(channelId: string, callback: (msgs: any[]) => void) {
126
+ const q = query(
127
+ collection(db, "channels", channelId, "messages"),
128
+ orderBy("createdAt", "desc"),
129
+ limit(50)
130
+ );
131
+ return onSnapshot(q, (snapshot) => {
132
+ const messages = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
133
+ callback(messages);
134
+ });
135
+ }
136
+
137
+ // Atomic counter
138
+ async function incrementViews(postId: string) {
139
+ await setDoc(doc(db, "posts", postId), {
140
+ views: increment(1),
141
+ }, { merge: true });
142
+ }
143
+ ```
144
+
145
+ ### Indexes
146
+
147
+ ```json
148
+ // firestore.indexes.json
149
+ {
150
+ "indexes": [
151
+ {
152
+ "collectionGroup": "messages",
153
+ "queryScope": "COLLECTION",
154
+ "fields": [
155
+ { "fieldPath": "channelId", "order": "ASCENDING" },
156
+ { "fieldPath": "createdAt", "order": "DESCENDING" }
157
+ ]
158
+ }
159
+ ]
160
+ }
161
+ ```
162
+
163
+ ## Authentication
164
+
165
+ ```typescript
166
+ // lib/auth.ts
167
+ import { getAuth, signInWithPopup, GoogleAuthProvider,
168
+ createUserWithEmailAndPassword, signInWithEmailAndPassword,
169
+ signOut, onAuthStateChanged } from "firebase/auth";
170
+
171
+ const auth = getAuth();
172
+
173
+ // Google sign-in
174
+ async function signInWithGoogle() {
175
+ const provider = new GoogleAuthProvider();
176
+ const result = await signInWithPopup(auth, provider);
177
+ return result.user;
178
+ }
179
+
180
+ // Email/password registration
181
+ async function register(email: string, password: string) {
182
+ const result = await createUserWithEmailAndPassword(auth, email, password);
183
+ return result.user;
184
+ }
185
+
186
+ // Auth state listener
187
+ onAuthStateChanged(auth, (user) => {
188
+ if (user) {
189
+ console.log("Signed in:", user.uid, user.email);
190
+ } else {
191
+ console.log("Signed out");
192
+ }
193
+ });
194
+ ```
195
+
196
+ ## Cloud Functions
197
+
198
+ ```typescript
199
+ // functions/src/index.ts
200
+ import { onRequest } from "firebase-functions/v2/https";
201
+ import { onDocumentCreated } from "firebase-functions/v2/firestore";
202
+ import { getFirestore } from "firebase-admin/firestore";
203
+ import { initializeApp } from "firebase-admin/app";
204
+
205
+ initializeApp();
206
+ const db = getFirestore();
207
+
208
+ // HTTP function (API endpoint)
209
+ export const api = onRequest({ cors: true, region: "us-central1" }, async (req, res) => {
210
+ if (req.method !== "GET") {
211
+ res.status(405).send("Method not allowed");
212
+ return;
213
+ }
214
+ const snapshot = await db.collection("posts").orderBy("createdAt", "desc").limit(10).get();
215
+ const posts = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
216
+ res.json({ posts });
217
+ });
218
+
219
+ // Firestore trigger — runs when a new message is created
220
+ export const onMessageCreated = onDocumentCreated(
221
+ "channels/{channelId}/messages/{messageId}",
222
+ async (event) => {
223
+ const data = event.data?.data();
224
+ if (!data) return;
225
+
226
+ // Update channel's last message timestamp
227
+ await db.doc(`channels/${event.params.channelId}`).update({
228
+ lastMessageAt: data.createdAt,
229
+ messageCount: FieldValue.increment(1),
230
+ });
231
+
232
+ // Send notification (example)
233
+ console.log(`New message in ${event.params.channelId}: ${data.body.substring(0, 50)}`);
234
+ }
235
+ );
236
+ ```
237
+
238
+ ## Hosting
239
+
240
+ ```json
241
+ // firebase.json
242
+ {
243
+ "hosting": {
244
+ "public": "dist",
245
+ "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
246
+ "rewrites": [
247
+ { "source": "/api/**", "function": "api" },
248
+ { "source": "**", "destination": "/index.html" }
249
+ ],
250
+ "headers": [
251
+ {
252
+ "source": "**/*.@(js|css|svg|png|jpg|webp|woff2)",
253
+ "headers": [{ "key": "Cache-Control", "value": "public, max-age=31536000, immutable" }]
254
+ },
255
+ {
256
+ "source": "**",
257
+ "headers": [
258
+ { "key": "X-Frame-Options", "value": "DENY" },
259
+ { "key": "X-Content-Type-Options", "value": "nosniff" },
260
+ { "key": "Strict-Transport-Security", "value": "max-age=63072000" }
261
+ ]
262
+ }
263
+ ]
264
+ }
265
+ }
266
+ ```
267
+
268
+ ## Local Emulators
269
+
270
+ ```bash
271
+ # Start all emulators
272
+ firebase emulators:start
273
+
274
+ # Start specific emulators
275
+ firebase emulators:start --only auth,firestore,functions
276
+
277
+ # Export emulator data for persistence
278
+ firebase emulators:export ./emulator-data
279
+ firebase emulators:start --import=./emulator-data
280
+
281
+ # Emulator UI at http://localhost:4000
282
+ ```
283
+
284
+ ```json
285
+ // firebase.json — emulator config
286
+ {
287
+ "emulators": {
288
+ "auth": { "port": 9099 },
289
+ "firestore": { "port": 8080 },
290
+ "functions": { "port": 5001 },
291
+ "hosting": { "port": 5000 },
292
+ "ui": { "enabled": true, "port": 4000 }
293
+ }
294
+ }
295
+ ```
296
+
297
+ ## Environment Configuration
298
+
299
+ ```bash
300
+ # Set environment variables for functions
301
+ firebase functions:config:set stripe.key="sk_live_xxx" app.name="MyApp"
302
+
303
+ # View config
304
+ firebase functions:config:get
305
+
306
+ # Use in functions (v1)
307
+ const stripeKey = functions.config().stripe.key;
308
+
309
+ # For v2 functions, use .env files
310
+ # functions/.env
311
+ STRIPE_KEY=sk_live_xxx
312
+
313
+ # functions/.env.local (for emulators)
314
+ STRIPE_KEY=sk_test_xxx
315
+ ```
316
+
317
+ ## Multi-Environment Setup
318
+
319
+ ```bash
320
+ # Create separate projects for each environment
321
+ firebase use --add # Add staging project alias
322
+ firebase use staging # Switch to staging
323
+ firebase use production
324
+
325
+ # Deploy to specific project
326
+ firebase deploy --project my-app-staging
327
+ firebase deploy --project my-app-production
328
+
329
+ # .firebaserc
330
+ {
331
+ "projects": {
332
+ "staging": "my-app-staging",
333
+ "production": "my-app-production"
334
+ }
335
+ }
336
+ ```
337
+
338
+ ## CLI Reference
339
+
340
+ ```bash
341
+ firebase projects:list # List all projects
342
+ firebase deploy # Deploy everything
343
+ firebase deploy --only functions # Deploy only functions
344
+ firebase deploy --only hosting # Deploy only hosting
345
+ firebase deploy --only firestore # Deploy rules + indexes
346
+ firebase functions:log # View function logs
347
+ firebase hosting:channel:create pr-123 # Preview channel
348
+ firebase hosting:channel:delete pr-123
349
+ ```
350
+
351
+ ## Security Best Practices
352
+
353
+ - Write strict Firestore security rules before any other code
354
+ - Separate environments by Firebase project (staging/production)
355
+ - Enable budget alerts and quota monitoring in GCP console
356
+ - Move privileged logic into Cloud Functions (never trust the client)
357
+ - Use App Check to prevent API abuse from non-app clients
358
+ - Enable Firestore audit logging for compliance
359
+ - Review OAuth consent screen settings
360
+
361
+ ## Troubleshooting
362
+
363
+ | Issue | Solution |
364
+ |-------|---------|
365
+ | Permission denied | Check Firestore rules, verify auth state |
366
+ | Function cold starts | Use min instances (`minInstances: 1`), optimize imports |
367
+ | Emulator won't start | Check port conflicts, run `firebase emulators:start --debug` |
368
+ | Deploy fails | Run `firebase deploy --debug`, check service account permissions |
369
+ | Rules test failing | Use `firebase emulators:exec` to run rules unit tests |
370
+
371
+ ## Related Skills
372
+
373
+ - gcp-cloud-functions (`gcp-cloud-functions`) — Function runtime patterns
374
+ - vercel-deployments (`vercel-deployments`) — Alternative frontend hosting
375
+ - convex-backend (`convex-backend`) — Alternative managed backend
376
+
377
+ ## Limitations
378
+
379
+ - Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
380
+ - Docs-only import: upstream scripts and templates not bundled.
381
+