kekkai-cli 1.0.5__tar.gz → 1.1.0__tar.gz

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 (174) hide show
  1. kekkai_cli-1.1.0/PKG-INFO +359 -0
  2. kekkai_cli-1.1.0/README.md +348 -0
  3. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/pyproject.toml +5 -1
  4. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/cli.py +693 -14
  5. kekkai_cli-1.1.0/src/kekkai/compliance/__init__.py +68 -0
  6. kekkai_cli-1.1.0/src/kekkai/compliance/hipaa.py +235 -0
  7. kekkai_cli-1.1.0/src/kekkai/compliance/mappings.py +136 -0
  8. kekkai_cli-1.1.0/src/kekkai/compliance/owasp.py +517 -0
  9. kekkai_cli-1.1.0/src/kekkai/compliance/owasp_agentic.py +267 -0
  10. kekkai_cli-1.1.0/src/kekkai/compliance/pci_dss.py +205 -0
  11. kekkai_cli-1.1.0/src/kekkai/compliance/soc2.py +209 -0
  12. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/dojo.py +91 -14
  13. kekkai_cli-1.1.0/src/kekkai/fix/__init__.py +47 -0
  14. kekkai_cli-1.1.0/src/kekkai/fix/audit.py +278 -0
  15. kekkai_cli-1.1.0/src/kekkai/fix/differ.py +427 -0
  16. kekkai_cli-1.1.0/src/kekkai/fix/engine.py +500 -0
  17. kekkai_cli-1.1.0/src/kekkai/fix/prompts.py +251 -0
  18. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/output.py +10 -12
  19. kekkai_cli-1.1.0/src/kekkai/report/__init__.py +41 -0
  20. kekkai_cli-1.1.0/src/kekkai/report/compliance_matrix.py +98 -0
  21. kekkai_cli-1.1.0/src/kekkai/report/generator.py +365 -0
  22. kekkai_cli-1.1.0/src/kekkai/report/html.py +69 -0
  23. kekkai_cli-1.1.0/src/kekkai/report/pdf.py +63 -0
  24. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/container.py +33 -3
  25. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/gitleaks.py +3 -1
  26. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/semgrep.py +1 -1
  27. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/trivy.py +1 -1
  28. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/model_adapter.py +143 -1
  29. kekkai_cli-1.1.0/src/kekkai_cli.egg-info/PKG-INFO +359 -0
  30. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_cli.egg-info/SOURCES.txt +21 -0
  31. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/enterprise/__init__.py +15 -2
  32. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/enterprise/licensing.py +88 -22
  33. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/web.py +9 -0
  34. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_cli_output.py +55 -10
  35. kekkai_cli-1.1.0/tests/test_compliance.py +580 -0
  36. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_enterprise_licensing.py +87 -34
  37. kekkai_cli-1.1.0/tests/test_fix_engine.py +416 -0
  38. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_dojo.py +71 -1
  39. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_dojo_cli.py +9 -3
  40. kekkai_cli-1.1.0/tests/test_report.py +393 -0
  41. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_container.py +40 -0
  42. kekkai_cli-1.1.0/tests/test_scanner_digest_defaults.py +83 -0
  43. kekkai_cli-1.0.5/PKG-INFO +0 -135
  44. kekkai_cli-1.0.5/README.md +0 -124
  45. kekkai_cli-1.0.5/src/kekkai_cli.egg-info/PKG-INFO +0 -135
  46. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/setup.cfg +0 -0
  47. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/__init__.py +0 -0
  48. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/config.py +0 -0
  49. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/dojo_import.py +0 -0
  50. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/github/__init__.py +0 -0
  51. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/github/commenter.py +0 -0
  52. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/github/models.py +0 -0
  53. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/github/sanitizer.py +0 -0
  54. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/__init__.py +0 -0
  55. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/errors.py +0 -0
  56. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/extract.py +0 -0
  57. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/manager.py +0 -0
  58. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/manifest.py +0 -0
  59. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/installer/verify.py +0 -0
  60. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/manifest.py +0 -0
  61. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/paths.py +0 -0
  62. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/policy.py +0 -0
  63. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/runner.py +0 -0
  64. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/__init__.py +0 -0
  65. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/backends/__init__.py +0 -0
  66. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/backends/base.py +0 -0
  67. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/backends/docker.py +0 -0
  68. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/backends/native.py +0 -0
  69. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/base.py +0 -0
  70. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/falco.py +0 -0
  71. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/url_policy.py +0 -0
  72. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/scanners/zap.py +0 -0
  73. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/__init__.py +0 -0
  74. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/artifacts.py +0 -0
  75. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/chunking.py +0 -0
  76. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/core.py +0 -0
  77. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/mermaid.py +0 -0
  78. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/prompts.py +0 -0
  79. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/redaction.py +0 -0
  80. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/threatflow/sanitizer.py +0 -0
  81. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/__init__.py +0 -0
  82. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/app.py +0 -0
  83. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/audit.py +0 -0
  84. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/ignore.py +0 -0
  85. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/models.py +0 -0
  86. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/screens.py +0 -0
  87. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai/triage/widgets.py +0 -0
  88. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_cli.egg-info/dependency_links.txt +0 -0
  89. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_cli.egg-info/entry_points.txt +0 -0
  90. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_cli.egg-info/requires.txt +0 -0
  91. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_cli.egg-info/top_level.txt +0 -0
  92. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/__init__.py +0 -0
  93. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/ci/__init__.py +0 -0
  94. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/ci/benchmarks.py +0 -0
  95. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/ci/metadata.py +0 -0
  96. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/ci/validators.py +0 -0
  97. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/docker/__init__.py +0 -0
  98. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/docker/metadata.py +0 -0
  99. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/docker/sbom.py +0 -0
  100. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/docker/security.py +0 -0
  101. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/docker/signing.py +0 -0
  102. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/redaction.py +0 -0
  103. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/slsa/__init__.py +0 -0
  104. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/slsa/verify.py +0 -0
  105. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/windows/__init__.py +0 -0
  106. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/windows/chocolatey.py +0 -0
  107. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/windows/installer.py +0 -0
  108. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/windows/scoop.py +0 -0
  109. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/kekkai_core/windows/validators.py +0 -0
  110. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/__init__.py +0 -0
  111. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/api.py +0 -0
  112. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/auth.py +0 -0
  113. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/enterprise/audit.py +0 -0
  114. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/enterprise/rbac.py +0 -0
  115. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/enterprise/saml.py +0 -0
  116. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/__init__.py +0 -0
  117. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/backup.py +0 -0
  118. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/log_shipper.py +0 -0
  119. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/monitoring.py +0 -0
  120. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/restore.py +0 -0
  121. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/secrets.py +0 -0
  122. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/ops/upgrade.py +0 -0
  123. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/tenants.py +0 -0
  124. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/src/portal/uploads.py +0 -0
  125. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_dojo_import.py +0 -0
  126. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_enterprise_audit.py +0 -0
  127. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_enterprise_rbac.py +0 -0
  128. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_enterprise_saml.py +0 -0
  129. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_github_commenter_filter.py +0 -0
  130. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_github_commenter_format.py +0 -0
  131. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_github_commenter_limit.py +0 -0
  132. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_github_commenter_sanitize.py +0 -0
  133. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_installer_checksum.py +0 -0
  134. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_installer_extract.py +0 -0
  135. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_installer_manager.py +0 -0
  136. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_installer_manifest.py +0 -0
  137. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_installer_platform.py +0 -0
  138. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_cli.py +0 -0
  139. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_config.py +0 -0
  140. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_manifest.py +0 -0
  141. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_paths.py +0 -0
  142. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_kekkai_runner.py +0 -0
  143. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_mermaid.py +0 -0
  144. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_backup.py +0 -0
  145. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_log_shipper.py +0 -0
  146. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_monitoring.py +0 -0
  147. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_restore.py +0 -0
  148. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_secrets.py +0 -0
  149. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_ops_upgrade.py +0 -0
  150. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_policy.py +0 -0
  151. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_portal_api.py +0 -0
  152. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_portal_auth.py +0 -0
  153. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_portal_tenants.py +0 -0
  154. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_portal_uploads.py +0 -0
  155. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_portal_web.py +0 -0
  156. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_redaction.py +0 -0
  157. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_backends.py +0 -0
  158. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_base.py +0 -0
  159. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_falco.py +0 -0
  160. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_gitleaks.py +0 -0
  161. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_native.py +0 -0
  162. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_semgrep.py +0 -0
  163. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_trivy.py +0 -0
  164. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_scanner_zap.py +0 -0
  165. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_slsa_provenance.py +0 -0
  166. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_threatflow_chunking.py +0 -0
  167. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_threatflow_model_adapter.py +0 -0
  168. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_threatflow_prompts.py +0 -0
  169. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_threatflow_redaction.py +0 -0
  170. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_threatflow_sanitizer.py +0 -0
  171. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_triage_audit.py +0 -0
  172. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_triage_ignore.py +0 -0
  173. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_triage_models.py +0 -0
  174. {kekkai_cli-1.0.5 → kekkai_cli-1.1.0}/tests/test_url_policy.py +0 -0
@@ -0,0 +1,359 @@
1
+ Metadata-Version: 2.4
2
+ Name: kekkai-cli
3
+ Version: 1.1.0
4
+ Summary: Kekkai monorepo (local-first AppSec orchestration + compliance checker)
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: rich>=13.0.0
8
+ Requires-Dist: jsonschema>=4.20.0
9
+ Requires-Dist: textual>=0.50.0
10
+ Requires-Dist: httpx>=0.24.0
11
+
12
+ <p align="center">
13
+ <img src="https://raw.githubusercontent.com/kademoslabs/assets/main/logos/kekkai-slim.png" alt="Kekkai CLI Logo" width="250"/>
14
+ </p>
15
+
16
+ <p align="center"><strong>Security orchestration at developer speed.</strong></p>
17
+ <p align="center"><i>One tool for the entire AppSec lifecycle: Predict, Detect, Triage, Manage.</i></p>
18
+
19
+ <p align="center">
20
+ <img src="https://img.shields.io/github/actions/workflow/status/kademoslabs/kekkai/docker-publish.yml?logo=github"/>
21
+ <img src="https://img.shields.io/circleci/build/github/kademoslabs/kekkai?logo=circleci"/>
22
+ <img src="https://img.shields.io/pypi/v/kekkai-cli?pypiBaseUrl=https%3A%2F%2Fpypi.org&logo=pypi"/>
23
+ </p>
24
+
25
+ ---
26
+
27
+ # Kekkai
28
+
29
+ Stop juggling security tools. **Kekkai orchestrates your entire AppSec lifecycle** — from AI-powered threat modeling to vulnerability management — in a single CLI.
30
+
31
+ ![Hero GIF](https://raw.githubusercontent.com/kademoslabs/assets/main/screenshots/kekkai-demo.gif)
32
+
33
+ ---
34
+
35
+ ## The Five Pillars
36
+
37
+ | Pillar | Feature | Command | Description |
38
+ |--------|---------|---------|-------------|
39
+ | 🔮 **Predict** | AI Threat Modeling | `kekkai threatflow` | Generate STRIDE threat models before writing code |
40
+ | 🔍 **Detect** | Unified Scanning | `kekkai scan` | Run Trivy, Semgrep, Gitleaks in isolated containers |
41
+ | ✅ **Triage** | Interactive Review | `kekkai triage` | Review findings in a terminal UI, mark false positives |
42
+ | 🚦 **Gate** | CI/CD Policy | `kekkai scan --ci` | Break builds on severity thresholds |
43
+ | 📊 **Manage** | DefectDojo | `kekkai dojo up` | Spin up vulnerability management in 60 seconds |
44
+
45
+ ---
46
+
47
+ ## Quick Start (60 Seconds)
48
+
49
+ ### 1. Install
50
+
51
+ ```bash
52
+ pipx install kekkai-cli
53
+ ```
54
+
55
+ ### 2. Predict (Threat Model)
56
+
57
+ ```bash
58
+ kekkai threatflow --repo . --model-mode local
59
+ # Generates THREATS.md with STRIDE analysis and Data Flow Diagram
60
+ ```
61
+
62
+ ### 3. Detect (Scan)
63
+
64
+ ```bash
65
+ kekkai scan
66
+ # Runs Trivy (CVEs), Semgrep (code), Gitleaks (secrets)
67
+ # Outputs unified kekkai-report.json
68
+ ```
69
+
70
+ ### 4. Triage (Review)
71
+
72
+ ```bash
73
+ kekkai triage
74
+ # Interactive TUI to accept, reject, or ignore findings
75
+ ```
76
+
77
+ ### 5. Manage (DefectDojo)
78
+
79
+ ```bash
80
+ kekkai dojo up --wait
81
+ kekkai upload
82
+ # Full vulnerability management platform + automated import
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Why Kekkai?
88
+
89
+ | Capability | Manual Approach | Kekkai |
90
+ |------------|-----------------|--------|
91
+ | **Tooling** | Install/update 5+ tools individually | One binary, auto-pulls scanner containers |
92
+ | **Output** | Parse 5 different JSON formats | Unified `kekkai-report.json` |
93
+ | **Threat Modeling** | Expensive consultants or whiteboarding | AI-generated `THREATS.md` locally |
94
+ | **DefectDojo** | 200-line docker-compose + debugging | `kekkai dojo up` (one command) |
95
+ | **Triage** | Read JSON files manually | Interactive terminal UI |
96
+ | **CI/CD** | Complex bash scripts | `kekkai scan --ci --fail-on high` |
97
+ | **PR Feedback** | Manual security review comments | Auto-comments on GitHub PRs |
98
+
99
+ ---
100
+
101
+ ## Feature Deep Dives
102
+
103
+ ### 🔮 ThreatFlow — AI-Powered Threat Modeling
104
+
105
+ Generate STRIDE-aligned threat models and Mermaid.js Data Flow Diagrams from your codebase.
106
+
107
+ ```bash
108
+ # Ollama (recommended - easy setup, privacy-preserving)
109
+ ollama pull mistral
110
+ kekkai threatflow --repo . --model-mode ollama --model-name mistral
111
+
112
+ # Local GGUF model (requires llama-cpp-python)
113
+ kekkai threatflow --repo . --model-mode local --model-path ./mistral-7b.gguf
114
+
115
+ # Remote API (faster, requires API key)
116
+ export KEKKAI_THREATFLOW_API_KEY="sk-..."
117
+ kekkai threatflow --repo . --model-mode openai
118
+ ```
119
+
120
+ **Output:** `THREATS.md` containing:
121
+ - Attack surface analysis
122
+ - STRIDE threat classification
123
+ - Mermaid.js architecture diagram
124
+ - Recommended mitigations
125
+
126
+ [Full ThreatFlow Documentation →](docs/threatflow/README.md)
127
+
128
+ ---
129
+
130
+ ### 🔍 Unified Scanning
131
+
132
+ Run industry-standard scanners without installing them individually. Each scanner runs in an isolated Docker container with security hardening.
133
+
134
+ ```bash
135
+ kekkai scan # Scan current directory
136
+ kekkai scan --repo /path/to/project # Scan specific path
137
+ kekkai scan --output results.json # Custom output path
138
+ ```
139
+
140
+ **Scanners Included:**
141
+ | Scanner | Finds | Image |
142
+ |---------|-------|-------|
143
+ | Trivy | CVEs in dependencies | `aquasec/trivy:latest` |
144
+ | Semgrep | Code vulnerabilities | `semgrep/semgrep:latest` |
145
+ | Gitleaks | Hardcoded secrets | `zricethezav/gitleaks:latest` |
146
+
147
+ **Container Security:**
148
+ - Read-only filesystem
149
+ - No network access
150
+ - Memory limited (2GB)
151
+ - No privilege escalation
152
+
153
+ ---
154
+
155
+ ### ✅ Interactive Triage TUI
156
+
157
+ Stop reading JSON. Review security findings in your terminal.
158
+
159
+ ```bash
160
+ kekkai triage
161
+ ```
162
+
163
+ **Features:**
164
+ - Navigate findings with keyboard
165
+ - Mark as: Accept, Reject, False Positive, Ignore
166
+ - Filter by severity, scanner, or status
167
+ - Persist decisions in `.kekkai-ignore`
168
+ - Export triaged results
169
+
170
+ <!-- Screenshot placeholder: ![Triage TUI](https://raw.githubusercontent.com/kademoslabs/assets/main/screenshots/triage-tui.png) -->
171
+
172
+ [Full Triage Documentation →](docs/triage/README.md)
173
+
174
+ ---
175
+
176
+ ### 🚦 CI/CD Policy Gate
177
+
178
+ Automate security enforcement in your pipelines.
179
+
180
+ ```bash
181
+ # Fail on any critical or high findings
182
+ kekkai scan --ci --fail-on high
183
+
184
+ # Fail only on critical
185
+ kekkai scan --ci --fail-on critical
186
+
187
+ # Custom threshold: fail on 5+ medium findings
188
+ kekkai scan --ci --fail-on medium --max-findings 5
189
+ ```
190
+
191
+ **Exit Codes:**
192
+ | Code | Meaning |
193
+ |------|---------|
194
+ | 0 | No findings above threshold |
195
+ | 1 | Findings exceed threshold |
196
+ | 2 | Scanner error |
197
+
198
+ **GitHub Actions Example:**
199
+
200
+ ```yaml
201
+ - name: Security Scan
202
+ run: |
203
+ pipx install kekkai-cli
204
+ kekkai scan --ci --fail-on high
205
+ ```
206
+
207
+ [Full CI Documentation →](docs/ci/ci-mode.md)
208
+
209
+ ---
210
+
211
+ ### 📊 DefectDojo Integration
212
+
213
+ Spin up a complete vulnerability management platform locally.
214
+
215
+ ```bash
216
+ kekkai dojo up --wait # Start DefectDojo (Nginx, Postgres, Redis, Celery)
217
+ kekkai dojo status # Check service health
218
+ kekkai upload # Import scan results
219
+ kekkai dojo down # Stop and clean up (removes volumes)
220
+ ```
221
+
222
+ **What You Get:**
223
+ - DefectDojo web UI at `http://localhost:8080`
224
+ - Automatic credential generation
225
+ - Pre-configured for Kekkai imports
226
+ - Clean teardown (no orphaned volumes)
227
+
228
+ [Full Dojo Documentation →](docs/dojo/dojo.md)
229
+
230
+ ---
231
+
232
+ ### 🔔 GitHub PR Comments
233
+
234
+ Get security feedback directly in pull requests.
235
+
236
+ ```bash
237
+ export GITHUB_TOKEN="ghp_..."
238
+ kekkai scan --github-comment
239
+ ```
240
+
241
+ Kekkai will:
242
+ 1. Run all scanners
243
+ 2. Post findings as PR review comments
244
+ 3. Annotate specific lines with inline comments
245
+
246
+ ---
247
+
248
+ ## Installation
249
+
250
+ ### pipx (Recommended)
251
+
252
+ Isolated environment, no conflicts with system Python.
253
+
254
+ ```bash
255
+ pipx install kekkai-cli
256
+ ```
257
+
258
+ ### Homebrew (macOS/Linux)
259
+
260
+ ```bash
261
+ brew install kademoslabs/tap/kekkai
262
+ ```
263
+
264
+ ### Scoop (Windows)
265
+
266
+ ```bash
267
+ scoop bucket add kademoslabs https://github.com/kademoslabs/scoop-bucket
268
+ scoop install kekkai
269
+ ```
270
+
271
+ ### Docker (No Python Required)
272
+
273
+ ```bash
274
+ docker pull kademoslabs/kekkai:latest
275
+ alias kekkai='docker run --rm -v "$(pwd):/repo" kademoslabs/kekkai:latest'
276
+ ```
277
+
278
+ ### pip (Traditional)
279
+
280
+ ```bash
281
+ pip install kekkai-cli
282
+ ```
283
+
284
+ ---
285
+
286
+ ## Enterprise Features — Kekkai Portal
287
+
288
+ For teams that need centralized management, **Kekkai Portal** provides:
289
+
290
+ | Feature | Description |
291
+ |---------|-------------|
292
+ | **SAML 2.0 SSO** | Integrate with Okta, Azure AD, Google Workspace ([Setup Guide](docs/portal/saml-setup.md)) |
293
+ | **Role-Based Access Control** | Fine-grained permissions per team/project ([RBAC Guide](docs/portal/rbac.md)) |
294
+ | **Multi-Tenant Architecture** | Isolated environments per organization ([Architecture](docs/portal/multi-tenant.md)) |
295
+ | **Aggregated Dashboards** | Centralized view of all CLI scan results |
296
+ | **Audit Logging** | Cryptographically signed compliance trails |
297
+
298
+ **Upgrade Path:**
299
+ - CLI users can sync results to Portal: `kekkai upload` ([Sync Guide](docs/portal/cli-sync.md))
300
+ - Portal provides dashboards for security managers
301
+ - Self-hosted or Kademos-managed options ([Deployment Guide](docs/portal/deployment.md))
302
+
303
+ [Contact us for Portal access →](mailto:sales@kademos.org)
304
+
305
+ ---
306
+
307
+ ## Security
308
+
309
+ Kekkai is designed with security as a core principle:
310
+
311
+ - **Container Isolation**: Scanners run in hardened Docker containers
312
+ - **No Network Access**: Containers cannot reach external networks
313
+ - **Local-First AI**: ThreatFlow can run entirely on your machine
314
+ - **SLSA Level 3**: Release artifacts include provenance attestations
315
+ - **Signed Images**: Docker images are Cosign-signed
316
+
317
+ For vulnerability reports, see [SECURITY.md](SECURITY.md).
318
+
319
+ ---
320
+
321
+ ## Documentation
322
+
323
+ | Guide | Description |
324
+ |-------|-------------|
325
+ | [Installation](docs/README.md#installation-methods) | All installation methods |
326
+ | [ThreatFlow](docs/threatflow/README.md) | AI threat modeling setup |
327
+ | [Dojo Quick Start](docs/dojo/dojo-quickstart.md) | DefectDojo in 5 minutes |
328
+ | [CI Mode](docs/ci/ci-mode.md) | Pipeline integration |
329
+ | [Portal](docs/portal/README.md) | Enterprise features overview |
330
+ | [Portal SSO](docs/portal/saml-setup.md) | SAML 2.0 SSO configuration |
331
+ | [Portal RBAC](docs/portal/rbac.md) | Role-based access control |
332
+ | [Portal Deployment](docs/portal/deployment.md) | Self-hosted deployment |
333
+ | [Security](docs/security/slsa-provenance.md) | SLSA provenance verification |
334
+
335
+ ---
336
+
337
+ ## CI/CD Status
338
+
339
+ [![Kekkai Security Scan](https://github.com/kademoslabs/kekkai/actions/workflows/kekkai-pr-scan.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/kekkai-pr-scan.yml)
340
+ [![Docker Image Publish](https://github.com/kademoslabs/kekkai/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/docker-publish.yml)
341
+ [![Docker Security Scan](https://github.com/kademoslabs/kekkai/actions/workflows/docker-security-scan.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/docker-security-scan.yml)
342
+ [![Cross-Platform Tests](https://github.com/kademoslabs/kekkai/actions/workflows/test-cross-platform.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/test-cross-platform.yml)
343
+ [![Release with SLSA Provenance](https://github.com/kademoslabs/kekkai/actions/workflows/release-slsa.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/release-slsa.yml)
344
+
345
+ ---
346
+
347
+ ## Contributing
348
+
349
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
350
+
351
+ ---
352
+
353
+ ## License
354
+
355
+ Apache-2.0 — See [LICENSE](LICENSE) for details.
356
+
357
+ ---
358
+
359
+ <p align="center"><i>Built by <a href="https://kademos.org">Kademos Labs</a></i></p>
@@ -0,0 +1,348 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/kademoslabs/assets/main/logos/kekkai-slim.png" alt="Kekkai CLI Logo" width="250"/>
3
+ </p>
4
+
5
+ <p align="center"><strong>Security orchestration at developer speed.</strong></p>
6
+ <p align="center"><i>One tool for the entire AppSec lifecycle: Predict, Detect, Triage, Manage.</i></p>
7
+
8
+ <p align="center">
9
+ <img src="https://img.shields.io/github/actions/workflow/status/kademoslabs/kekkai/docker-publish.yml?logo=github"/>
10
+ <img src="https://img.shields.io/circleci/build/github/kademoslabs/kekkai?logo=circleci"/>
11
+ <img src="https://img.shields.io/pypi/v/kekkai-cli?pypiBaseUrl=https%3A%2F%2Fpypi.org&logo=pypi"/>
12
+ </p>
13
+
14
+ ---
15
+
16
+ # Kekkai
17
+
18
+ Stop juggling security tools. **Kekkai orchestrates your entire AppSec lifecycle** — from AI-powered threat modeling to vulnerability management — in a single CLI.
19
+
20
+ ![Hero GIF](https://raw.githubusercontent.com/kademoslabs/assets/main/screenshots/kekkai-demo.gif)
21
+
22
+ ---
23
+
24
+ ## The Five Pillars
25
+
26
+ | Pillar | Feature | Command | Description |
27
+ |--------|---------|---------|-------------|
28
+ | 🔮 **Predict** | AI Threat Modeling | `kekkai threatflow` | Generate STRIDE threat models before writing code |
29
+ | 🔍 **Detect** | Unified Scanning | `kekkai scan` | Run Trivy, Semgrep, Gitleaks in isolated containers |
30
+ | ✅ **Triage** | Interactive Review | `kekkai triage` | Review findings in a terminal UI, mark false positives |
31
+ | 🚦 **Gate** | CI/CD Policy | `kekkai scan --ci` | Break builds on severity thresholds |
32
+ | 📊 **Manage** | DefectDojo | `kekkai dojo up` | Spin up vulnerability management in 60 seconds |
33
+
34
+ ---
35
+
36
+ ## Quick Start (60 Seconds)
37
+
38
+ ### 1. Install
39
+
40
+ ```bash
41
+ pipx install kekkai-cli
42
+ ```
43
+
44
+ ### 2. Predict (Threat Model)
45
+
46
+ ```bash
47
+ kekkai threatflow --repo . --model-mode local
48
+ # Generates THREATS.md with STRIDE analysis and Data Flow Diagram
49
+ ```
50
+
51
+ ### 3. Detect (Scan)
52
+
53
+ ```bash
54
+ kekkai scan
55
+ # Runs Trivy (CVEs), Semgrep (code), Gitleaks (secrets)
56
+ # Outputs unified kekkai-report.json
57
+ ```
58
+
59
+ ### 4. Triage (Review)
60
+
61
+ ```bash
62
+ kekkai triage
63
+ # Interactive TUI to accept, reject, or ignore findings
64
+ ```
65
+
66
+ ### 5. Manage (DefectDojo)
67
+
68
+ ```bash
69
+ kekkai dojo up --wait
70
+ kekkai upload
71
+ # Full vulnerability management platform + automated import
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Why Kekkai?
77
+
78
+ | Capability | Manual Approach | Kekkai |
79
+ |------------|-----------------|--------|
80
+ | **Tooling** | Install/update 5+ tools individually | One binary, auto-pulls scanner containers |
81
+ | **Output** | Parse 5 different JSON formats | Unified `kekkai-report.json` |
82
+ | **Threat Modeling** | Expensive consultants or whiteboarding | AI-generated `THREATS.md` locally |
83
+ | **DefectDojo** | 200-line docker-compose + debugging | `kekkai dojo up` (one command) |
84
+ | **Triage** | Read JSON files manually | Interactive terminal UI |
85
+ | **CI/CD** | Complex bash scripts | `kekkai scan --ci --fail-on high` |
86
+ | **PR Feedback** | Manual security review comments | Auto-comments on GitHub PRs |
87
+
88
+ ---
89
+
90
+ ## Feature Deep Dives
91
+
92
+ ### 🔮 ThreatFlow — AI-Powered Threat Modeling
93
+
94
+ Generate STRIDE-aligned threat models and Mermaid.js Data Flow Diagrams from your codebase.
95
+
96
+ ```bash
97
+ # Ollama (recommended - easy setup, privacy-preserving)
98
+ ollama pull mistral
99
+ kekkai threatflow --repo . --model-mode ollama --model-name mistral
100
+
101
+ # Local GGUF model (requires llama-cpp-python)
102
+ kekkai threatflow --repo . --model-mode local --model-path ./mistral-7b.gguf
103
+
104
+ # Remote API (faster, requires API key)
105
+ export KEKKAI_THREATFLOW_API_KEY="sk-..."
106
+ kekkai threatflow --repo . --model-mode openai
107
+ ```
108
+
109
+ **Output:** `THREATS.md` containing:
110
+ - Attack surface analysis
111
+ - STRIDE threat classification
112
+ - Mermaid.js architecture diagram
113
+ - Recommended mitigations
114
+
115
+ [Full ThreatFlow Documentation →](docs/threatflow/README.md)
116
+
117
+ ---
118
+
119
+ ### 🔍 Unified Scanning
120
+
121
+ Run industry-standard scanners without installing them individually. Each scanner runs in an isolated Docker container with security hardening.
122
+
123
+ ```bash
124
+ kekkai scan # Scan current directory
125
+ kekkai scan --repo /path/to/project # Scan specific path
126
+ kekkai scan --output results.json # Custom output path
127
+ ```
128
+
129
+ **Scanners Included:**
130
+ | Scanner | Finds | Image |
131
+ |---------|-------|-------|
132
+ | Trivy | CVEs in dependencies | `aquasec/trivy:latest` |
133
+ | Semgrep | Code vulnerabilities | `semgrep/semgrep:latest` |
134
+ | Gitleaks | Hardcoded secrets | `zricethezav/gitleaks:latest` |
135
+
136
+ **Container Security:**
137
+ - Read-only filesystem
138
+ - No network access
139
+ - Memory limited (2GB)
140
+ - No privilege escalation
141
+
142
+ ---
143
+
144
+ ### ✅ Interactive Triage TUI
145
+
146
+ Stop reading JSON. Review security findings in your terminal.
147
+
148
+ ```bash
149
+ kekkai triage
150
+ ```
151
+
152
+ **Features:**
153
+ - Navigate findings with keyboard
154
+ - Mark as: Accept, Reject, False Positive, Ignore
155
+ - Filter by severity, scanner, or status
156
+ - Persist decisions in `.kekkai-ignore`
157
+ - Export triaged results
158
+
159
+ <!-- Screenshot placeholder: ![Triage TUI](https://raw.githubusercontent.com/kademoslabs/assets/main/screenshots/triage-tui.png) -->
160
+
161
+ [Full Triage Documentation →](docs/triage/README.md)
162
+
163
+ ---
164
+
165
+ ### 🚦 CI/CD Policy Gate
166
+
167
+ Automate security enforcement in your pipelines.
168
+
169
+ ```bash
170
+ # Fail on any critical or high findings
171
+ kekkai scan --ci --fail-on high
172
+
173
+ # Fail only on critical
174
+ kekkai scan --ci --fail-on critical
175
+
176
+ # Custom threshold: fail on 5+ medium findings
177
+ kekkai scan --ci --fail-on medium --max-findings 5
178
+ ```
179
+
180
+ **Exit Codes:**
181
+ | Code | Meaning |
182
+ |------|---------|
183
+ | 0 | No findings above threshold |
184
+ | 1 | Findings exceed threshold |
185
+ | 2 | Scanner error |
186
+
187
+ **GitHub Actions Example:**
188
+
189
+ ```yaml
190
+ - name: Security Scan
191
+ run: |
192
+ pipx install kekkai-cli
193
+ kekkai scan --ci --fail-on high
194
+ ```
195
+
196
+ [Full CI Documentation →](docs/ci/ci-mode.md)
197
+
198
+ ---
199
+
200
+ ### 📊 DefectDojo Integration
201
+
202
+ Spin up a complete vulnerability management platform locally.
203
+
204
+ ```bash
205
+ kekkai dojo up --wait # Start DefectDojo (Nginx, Postgres, Redis, Celery)
206
+ kekkai dojo status # Check service health
207
+ kekkai upload # Import scan results
208
+ kekkai dojo down # Stop and clean up (removes volumes)
209
+ ```
210
+
211
+ **What You Get:**
212
+ - DefectDojo web UI at `http://localhost:8080`
213
+ - Automatic credential generation
214
+ - Pre-configured for Kekkai imports
215
+ - Clean teardown (no orphaned volumes)
216
+
217
+ [Full Dojo Documentation →](docs/dojo/dojo.md)
218
+
219
+ ---
220
+
221
+ ### 🔔 GitHub PR Comments
222
+
223
+ Get security feedback directly in pull requests.
224
+
225
+ ```bash
226
+ export GITHUB_TOKEN="ghp_..."
227
+ kekkai scan --github-comment
228
+ ```
229
+
230
+ Kekkai will:
231
+ 1. Run all scanners
232
+ 2. Post findings as PR review comments
233
+ 3. Annotate specific lines with inline comments
234
+
235
+ ---
236
+
237
+ ## Installation
238
+
239
+ ### pipx (Recommended)
240
+
241
+ Isolated environment, no conflicts with system Python.
242
+
243
+ ```bash
244
+ pipx install kekkai-cli
245
+ ```
246
+
247
+ ### Homebrew (macOS/Linux)
248
+
249
+ ```bash
250
+ brew install kademoslabs/tap/kekkai
251
+ ```
252
+
253
+ ### Scoop (Windows)
254
+
255
+ ```bash
256
+ scoop bucket add kademoslabs https://github.com/kademoslabs/scoop-bucket
257
+ scoop install kekkai
258
+ ```
259
+
260
+ ### Docker (No Python Required)
261
+
262
+ ```bash
263
+ docker pull kademoslabs/kekkai:latest
264
+ alias kekkai='docker run --rm -v "$(pwd):/repo" kademoslabs/kekkai:latest'
265
+ ```
266
+
267
+ ### pip (Traditional)
268
+
269
+ ```bash
270
+ pip install kekkai-cli
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Enterprise Features — Kekkai Portal
276
+
277
+ For teams that need centralized management, **Kekkai Portal** provides:
278
+
279
+ | Feature | Description |
280
+ |---------|-------------|
281
+ | **SAML 2.0 SSO** | Integrate with Okta, Azure AD, Google Workspace ([Setup Guide](docs/portal/saml-setup.md)) |
282
+ | **Role-Based Access Control** | Fine-grained permissions per team/project ([RBAC Guide](docs/portal/rbac.md)) |
283
+ | **Multi-Tenant Architecture** | Isolated environments per organization ([Architecture](docs/portal/multi-tenant.md)) |
284
+ | **Aggregated Dashboards** | Centralized view of all CLI scan results |
285
+ | **Audit Logging** | Cryptographically signed compliance trails |
286
+
287
+ **Upgrade Path:**
288
+ - CLI users can sync results to Portal: `kekkai upload` ([Sync Guide](docs/portal/cli-sync.md))
289
+ - Portal provides dashboards for security managers
290
+ - Self-hosted or Kademos-managed options ([Deployment Guide](docs/portal/deployment.md))
291
+
292
+ [Contact us for Portal access →](mailto:sales@kademos.org)
293
+
294
+ ---
295
+
296
+ ## Security
297
+
298
+ Kekkai is designed with security as a core principle:
299
+
300
+ - **Container Isolation**: Scanners run in hardened Docker containers
301
+ - **No Network Access**: Containers cannot reach external networks
302
+ - **Local-First AI**: ThreatFlow can run entirely on your machine
303
+ - **SLSA Level 3**: Release artifacts include provenance attestations
304
+ - **Signed Images**: Docker images are Cosign-signed
305
+
306
+ For vulnerability reports, see [SECURITY.md](SECURITY.md).
307
+
308
+ ---
309
+
310
+ ## Documentation
311
+
312
+ | Guide | Description |
313
+ |-------|-------------|
314
+ | [Installation](docs/README.md#installation-methods) | All installation methods |
315
+ | [ThreatFlow](docs/threatflow/README.md) | AI threat modeling setup |
316
+ | [Dojo Quick Start](docs/dojo/dojo-quickstart.md) | DefectDojo in 5 minutes |
317
+ | [CI Mode](docs/ci/ci-mode.md) | Pipeline integration |
318
+ | [Portal](docs/portal/README.md) | Enterprise features overview |
319
+ | [Portal SSO](docs/portal/saml-setup.md) | SAML 2.0 SSO configuration |
320
+ | [Portal RBAC](docs/portal/rbac.md) | Role-based access control |
321
+ | [Portal Deployment](docs/portal/deployment.md) | Self-hosted deployment |
322
+ | [Security](docs/security/slsa-provenance.md) | SLSA provenance verification |
323
+
324
+ ---
325
+
326
+ ## CI/CD Status
327
+
328
+ [![Kekkai Security Scan](https://github.com/kademoslabs/kekkai/actions/workflows/kekkai-pr-scan.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/kekkai-pr-scan.yml)
329
+ [![Docker Image Publish](https://github.com/kademoslabs/kekkai/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/docker-publish.yml)
330
+ [![Docker Security Scan](https://github.com/kademoslabs/kekkai/actions/workflows/docker-security-scan.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/docker-security-scan.yml)
331
+ [![Cross-Platform Tests](https://github.com/kademoslabs/kekkai/actions/workflows/test-cross-platform.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/test-cross-platform.yml)
332
+ [![Release with SLSA Provenance](https://github.com/kademoslabs/kekkai/actions/workflows/release-slsa.yml/badge.svg)](https://github.com/kademoslabs/kekkai/actions/workflows/release-slsa.yml)
333
+
334
+ ---
335
+
336
+ ## Contributing
337
+
338
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
339
+
340
+ ---
341
+
342
+ ## License
343
+
344
+ Apache-2.0 — See [LICENSE](LICENSE) for details.
345
+
346
+ ---
347
+
348
+ <p align="center"><i>Built by <a href="https://kademos.org">Kademos Labs</a></i></p>