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,436 @@
1
+ ---
2
+ name: mongodb
3
+ description: Administer MongoDB databases. Configure replica sets, sharding, and backups.
4
+ Use when managing MongoDB deployments.
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
+ # MongoDB
21
+
22
+ Administer, optimize, and secure MongoDB NoSQL databases in development and production environments.
23
+
24
+ ## When to Use
25
+
26
+ - You need a document-oriented database with flexible schemas.
27
+ - Your data is semi-structured or heavily nested (JSON-like documents).
28
+ - You need horizontal scaling through sharding.
29
+ - Your application benefits from rich querying and aggregation pipelines.
30
+
31
+ ## Prerequisites
32
+
33
+ - Linux server (Debian/Ubuntu or RHEL-based) or Docker.
34
+ - Root or sudo access for package installation.
35
+ - MongoDB 7.x recommended for production (6.x still supported).
36
+
37
+ ## Installation and Setup
38
+
39
+ ```bash
40
+ # Debian / Ubuntu — MongoDB 7
41
+ curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
42
+ sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
43
+ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
44
+ https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | \
45
+ sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
46
+ sudo apt update
47
+ sudo apt install -y mongodb-org
48
+
49
+ # Start and enable
50
+ sudo systemctl enable --now mongod
51
+
52
+ # Verify
53
+ mongosh --eval "db.version()"
54
+ ```
55
+
56
+ ## Initial User Setup
57
+
58
+ ```javascript
59
+ // Connect without auth first
60
+ // mongosh
61
+
62
+ use admin
63
+
64
+ // Create admin user
65
+ db.createUser({
66
+ user: "admin",
67
+ pwd: "strong_admin_password",
68
+ roles: [
69
+ { role: "userAdminAnyDatabase", db: "admin" },
70
+ { role: "readWriteAnyDatabase", db: "admin" },
71
+ { role: "clusterAdmin", db: "admin" }
72
+ ]
73
+ })
74
+
75
+ // Create an application-scoped user
76
+ use mydb
77
+ db.createUser({
78
+ user: "myapp",
79
+ pwd: "strong_app_password",
80
+ roles: [{ role: "readWrite", db: "mydb" }]
81
+ })
82
+ ```
83
+
84
+ Enable authentication in `/etc/mongod.conf`:
85
+
86
+ ```yaml
87
+ security:
88
+ authorization: enabled
89
+ ```
90
+
91
+ ```bash
92
+ sudo systemctl restart mongod
93
+ # Now connect with credentials
94
+ mongosh -u myapp -p strong_app_password --authenticationDatabase mydb
95
+ ```
96
+
97
+ ## mongosh Commands Reference
98
+
99
+ ```javascript
100
+ // Show databases and collections
101
+ show dbs
102
+ use mydb
103
+ show collections
104
+
105
+ // Insert documents
106
+ db.users.insertOne({ name: "Alice", email: "alice@example.com", age: 30 })
107
+ db.users.insertMany([
108
+ { name: "Bob", email: "bob@example.com", age: 25 },
109
+ { name: "Carol", email: "carol@example.com", age: 35 }
110
+ ])
111
+
112
+ // Query documents
113
+ db.users.find({ age: { $gte: 25 } }).sort({ name: 1 }).limit(10)
114
+ db.users.findOne({ email: "alice@example.com" })
115
+ db.users.countDocuments({ age: { $gte: 30 } })
116
+
117
+ // Update
118
+ db.users.updateOne(
119
+ { email: "alice@example.com" },
120
+ { $set: { age: 31 }, $currentDate: { updatedAt: true } }
121
+ )
122
+ db.users.updateMany(
123
+ { age: { $lt: 30 } },
124
+ { $set: { tier: "junior" } }
125
+ )
126
+
127
+ // Delete
128
+ db.users.deleteOne({ email: "bob@example.com" })
129
+ db.users.deleteMany({ tier: "junior" })
130
+ ```
131
+
132
+ ## Indexing
133
+
134
+ ```javascript
135
+ // Single-field index
136
+ db.users.createIndex({ email: 1 }, { unique: true })
137
+
138
+ // Compound index
139
+ db.orders.createIndex({ userId: 1, createdAt: -1 })
140
+
141
+ // Text index for search
142
+ db.articles.createIndex({ title: "text", body: "text" })
143
+ db.articles.find({ $text: { $search: "mongodb scaling" } })
144
+
145
+ // TTL index — auto-delete documents after 30 days
146
+ db.sessions.createIndex({ createdAt: 1 }, { expireAfterSeconds: 2592000 })
147
+
148
+ // List indexes
149
+ db.users.getIndexes()
150
+
151
+ // Drop an index
152
+ db.users.dropIndex("email_1")
153
+
154
+ // Explain a query to verify index usage
155
+ db.orders.find({ userId: 42 }).explain("executionStats")
156
+ ```
157
+
158
+ ## Aggregation Pipeline Examples
159
+
160
+ ```javascript
161
+ // Revenue per status
162
+ db.orders.aggregate([
163
+ { $group: {
164
+ _id: "$status",
165
+ totalRevenue: { $sum: "$total" },
166
+ count: { $sum: 1 }
167
+ }},
168
+ { $sort: { totalRevenue: -1 } }
169
+ ])
170
+
171
+ // Top 5 customers by order value (with a join)
172
+ db.orders.aggregate([
173
+ { $group: {
174
+ _id: "$userId",
175
+ spent: { $sum: "$total" },
176
+ orderCount: { $sum: 1 }
177
+ }},
178
+ { $sort: { spent: -1 } },
179
+ { $limit: 5 },
180
+ { $lookup: {
181
+ from: "users",
182
+ localField: "_id",
183
+ foreignField: "_id",
184
+ as: "user"
185
+ }},
186
+ { $unwind: "$user" },
187
+ { $project: {
188
+ _id: 0,
189
+ name: "$user.name",
190
+ email: "$user.email",
191
+ spent: 1,
192
+ orderCount: 1
193
+ }}
194
+ ])
195
+
196
+ // Daily signup trend
197
+ db.users.aggregate([
198
+ { $group: {
199
+ _id: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } },
200
+ signups: { $sum: 1 }
201
+ }},
202
+ { $sort: { _id: 1 } },
203
+ { $limit: 30 }
204
+ ])
205
+ ```
206
+
207
+ ## Replica Set Setup
208
+
209
+ A replica set requires a minimum of three members (or two data-bearing nodes plus an arbiter).
210
+
211
+ ### Configuration File for Each Member
212
+
213
+ ```yaml
214
+ # /etc/mongod.conf (adjust port and dbPath per member)
215
+ storage:
216
+ dbPath: /var/lib/mongodb
217
+ net:
218
+ port: 27017
219
+ bindIp: 0.0.0.0
220
+ replication:
221
+ replSetName: rs0
222
+ security:
223
+ authorization: enabled
224
+ keyFile: /etc/mongodb-keyfile
225
+ ```
226
+
227
+ ```bash
228
+ # Generate a shared keyfile for internal auth
229
+ openssl rand -base64 756 > /etc/mongodb-keyfile
230
+ chmod 400 /etc/mongodb-keyfile
231
+ chown mongodb:mongodb /etc/mongodb-keyfile
232
+ # Copy this file to all replica set members
233
+ ```
234
+
235
+ ### Initialize the Replica Set
236
+
237
+ ```javascript
238
+ // Connect to the first member
239
+ // mongosh --port 27017
240
+
241
+ rs.initiate({
242
+ _id: "rs0",
243
+ members: [
244
+ { _id: 0, host: "mongo1:27017", priority: 2 },
245
+ { _id: 1, host: "mongo2:27017", priority: 1 },
246
+ { _id: 2, host: "mongo3:27017", priority: 1 }
247
+ ]
248
+ })
249
+
250
+ // Check status
251
+ rs.status()
252
+
253
+ // View replication lag per member
254
+ rs.printReplicationInfo()
255
+ rs.printSecondaryReplicationInfo()
256
+ ```
257
+
258
+ ## Backup and Restore
259
+
260
+ ```bash
261
+ # Full dump of all databases
262
+ mongodump --uri="mongodb://admin:secret@localhost:27017" --out=/backups/full_$(date +%F)
263
+
264
+ # Single database
265
+ mongodump --uri="mongodb://myapp:secret@localhost:27017/mydb" --out=/backups/mydb_$(date +%F)
266
+
267
+ # Compressed dump
268
+ mongodump --uri="mongodb://admin:secret@localhost:27017" --gzip --out=/backups/gz_$(date +%F)
269
+
270
+ # Restore all databases
271
+ mongorestore --uri="mongodb://admin:secret@localhost:27017" /backups/full_2025-01-15/
272
+
273
+ # Restore a single database, dropping existing data first
274
+ mongorestore --uri="mongodb://admin:secret@localhost:27017" \
275
+ --drop --db mydb /backups/mydb_2025-01-15/mydb/
276
+
277
+ # Restore compressed dump
278
+ mongorestore --uri="mongodb://admin:secret@localhost:27017" --gzip /backups/gz_2025-01-15/
279
+ ```
280
+
281
+ ## Docker Compose Setup
282
+
283
+ ```yaml
284
+ # docker-compose.yml
285
+ version: "3.9"
286
+
287
+ services:
288
+ mongo1:
289
+ image: mongo:7
290
+ restart: unless-stopped
291
+ ports:
292
+ - "27017:27017"
293
+ environment:
294
+ MONGO_INITDB_ROOT_USERNAME: admin
295
+ MONGO_INITDB_ROOT_PASSWORD: secret
296
+ volumes:
297
+ - mongo1_data:/data/db
298
+ - ./mongo-keyfile:/etc/mongodb-keyfile:ro
299
+ command: >
300
+ mongod
301
+ --replSet rs0
302
+ --keyFile /etc/mongodb-keyfile
303
+ --bind_ip_all
304
+ healthcheck:
305
+ test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
306
+ interval: 10s
307
+ timeout: 5s
308
+ retries: 5
309
+
310
+ mongo2:
311
+ image: mongo:7
312
+ restart: unless-stopped
313
+ volumes:
314
+ - mongo2_data:/data/db
315
+ - ./mongo-keyfile:/etc/mongodb-keyfile:ro
316
+ command: >
317
+ mongod
318
+ --replSet rs0
319
+ --keyFile /etc/mongodb-keyfile
320
+ --bind_ip_all
321
+
322
+ mongo3:
323
+ image: mongo:7
324
+ restart: unless-stopped
325
+ volumes:
326
+ - mongo3_data:/data/db
327
+ - ./mongo-keyfile:/etc/mongodb-keyfile:ro
328
+ command: >
329
+ mongod
330
+ --replSet rs0
331
+ --keyFile /etc/mongodb-keyfile
332
+ --bind_ip_all
333
+
334
+ mongo-init:
335
+ image: mongo:7
336
+ restart: "no"
337
+ depends_on:
338
+ mongo1:
339
+ condition: service_healthy
340
+ entrypoint: >
341
+ mongosh --host mongo1 -u admin -p secret --authenticationDatabase admin --eval '
342
+ rs.initiate({
343
+ _id: "rs0",
344
+ members: [
345
+ { _id: 0, host: "mongo1:27017", priority: 2 },
346
+ { _id: 1, host: "mongo2:27017", priority: 1 },
347
+ { _id: 2, host: "mongo3:27017", priority: 1 }
348
+ ]
349
+ })
350
+ '
351
+
352
+ volumes:
353
+ mongo1_data:
354
+ mongo2_data:
355
+ mongo3_data:
356
+ ```
357
+
358
+ ```bash
359
+ # Generate keyfile before starting
360
+ openssl rand -base64 756 > mongo-keyfile
361
+ chmod 400 mongo-keyfile
362
+
363
+ docker compose up -d
364
+
365
+ # Connect
366
+ mongosh "mongodb://admin:secret@127.0.0.1:27017/?replicaSet=rs0&authSource=admin"
367
+ ```
368
+
369
+ ## Monitoring Queries
370
+
371
+ ```javascript
372
+ // Server status summary
373
+ db.serverStatus().connections
374
+ db.serverStatus().opcounters
375
+
376
+ // Current operations (look for long-running queries)
377
+ db.currentOp({ secs_running: { $gte: 5 } })
378
+
379
+ // Collection stats
380
+ db.orders.stats()
381
+
382
+ // Index sizes
383
+ db.orders.stats().indexSizes
384
+
385
+ // Profiler — log slow queries (> 100ms)
386
+ db.setProfilingLevel(1, { slowms: 100 })
387
+ db.system.profile.find().sort({ ts: -1 }).limit(5)
388
+
389
+ // Replica set lag
390
+ rs.printSecondaryReplicationInfo()
391
+ ```
392
+
393
+ ## Configuration Tuning
394
+
395
+ ```yaml
396
+ # /etc/mongod.conf — production recommendations
397
+ storage:
398
+ dbPath: /var/lib/mongodb
399
+ journal:
400
+ enabled: true
401
+ wiredTiger:
402
+ engineConfig:
403
+ cacheSizeGB: 4 # ~50% of RAM, leave rest for OS cache
404
+ collectionConfig:
405
+ blockCompressor: snappy
406
+ net:
407
+ port: 27017
408
+ bindIp: 0.0.0.0
409
+ maxIncomingConnections: 500
410
+ operationProfiling:
411
+ mode: slowOp
412
+ slowOpThresholdMs: 100
413
+ ```
414
+
415
+ ## Troubleshooting
416
+
417
+ | Symptom | Likely Cause | Fix |
418
+ |---|---|---|
419
+ | `COLLSCAN` in explain output | Missing index on queried field | Create an appropriate index |
420
+ | Replica member stuck in `RECOVERING` | Oplog window exceeded | Resync by removing data and restarting the member |
421
+ | `too many open files` | OS file descriptor limit too low | Set `ulimit -n 65535` in service file |
422
+ | High memory usage | WiredTiger cache too large | Reduce `cacheSizeGB` in config |
423
+ | Slow aggregation pipelines | No index on `$match` stage fields | Add index; place `$match` as early as possible in pipeline |
424
+ | Authentication failure | Wrong `authenticationDatabase` | Specify `--authenticationDatabase admin` for admin users |
425
+
426
+ ## Related Skills
427
+
428
+ - redis (`redis`) - Caching layer in front of MongoDB
429
+ - database-backups (`database-backups`) - Automated backup strategies
430
+ - postgresql (`postgresql-devsec`) - Alternative relational database
431
+
432
+ ## Limitations
433
+
434
+ - Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
435
+ - Docs-only import: upstream scripts and templates not bundled.
436
+