{"_id":"@aliefe04/kanit","_rev":"2-13098a8d5ac38ef5e245f2a5243606cb","name":"@aliefe04/kanit","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aliefe04/kanit","version":"0.1.0","keywords":["compliance","soc2","iso27001","security","aws","github","audit","cli"],"author":{"name":"Kanit"},"license":"Apache-2.0","_id":"@aliefe04/kanit@0.1.0","maintainers":[{"name":"aliefe04","email":"efecakici98@gmail.com"}],"bin":{"kanit":"dist/bin/kanit.js"},"dist":{"shasum":"4cd05ae45cf80183eca8f4402bc4aa6eee5d6c0d","tarball":"https://registry.npmjs.org/@aliefe04/kanit/-/kanit-0.1.0.tgz","fileCount":15,"integrity":"sha512-b/llXdrisUfLYT0oNauNaMHlBTlWGk3N9k1zHsivxgO7WQdeVBzDxt0wqi+BsICD/OWKXXJVsgkAFWPPmrJyhg==","signatures":[{"sig":"MEUCIQD9dYEzBVuEQWvGw8zOUFXy3pwJ22hm+sNofuCKOzZVbgIgecfQu9MpAGi+c9WW5hTS30dZEUT1eesUM1575vU8lmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209017},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"gitHead":"971f5b0ff457bb81e87d6a2b36a208f1947ad3b6","scripts":{"test":"vitest run","build":"tsup","start":"node ./dist/bin/kanit.js","test:watch":"vitest"},"_npmUser":{"name":"aliefe04","email":"efecakici98@gmail.com"},"_npmVersion":"11.19.0","description":"Continuous compliance engine for SOC 2 & ISO 27001 (AWS & GitHub)","directories":{},"_nodeVersion":"26.7.0","dependencies":{"ora":"^8.2.0","zod":"^3.24.2","boxen":"^8.0.1","chalk":"^5.4.1","pdf-lib":"^1.17.1","commander":"^13.1.0","cli-table3":"^0.6.5","@octokit/rest":"^21.1.1","@aws-sdk/client-s3":"^3.758.0","@aws-sdk/client-ec2":"^3.758.0","@aws-sdk/client-iam":"^3.758.0","@aws-sdk/client-rds":"^3.758.0","@aws-sdk/client-cloudtrail":"^3.758.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.9"},"_npmOperationalInternal":{"tmp":"tmp/kanit_0.1.0_1788722014863_0.8739640682756724","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aliefe04/kanit","version":"0.1.1","description":"Continuous compliance engine for SOC 2 & ISO 27001 (AWS & GitHub)","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","bin":{"kanit":"dist/bin/kanit.js"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","start":"node ./dist/bin/kanit.js"},"keywords":["compliance","soc2","iso27001","security","aws","github","audit","cli"],"author":{"name":"Kanit"},"license":"Apache-2.0","dependencies":{"@aws-sdk/client-cloudtrail":"^3.758.0","@aws-sdk/client-ec2":"^3.758.0","@aws-sdk/client-iam":"^3.758.0","@aws-sdk/client-rds":"^3.758.0","@aws-sdk/client-s3":"^3.758.0","@octokit/rest":"^21.1.1","boxen":"^8.0.1","chalk":"^5.4.1","cli-table3":"^0.6.5","commander":"^13.1.0","ora":"^8.2.0","pdf-lib":"^1.17.1","zod":"^3.24.2"},"devDependencies":{"@types/node":"^22.13.9","tsup":"^8.4.0","typescript":"^5.8.2","vitest":"^3.0.8"},"engines":{"node":">=18.0.0"},"gitHead":"971f5b0ff457bb81e87d6a2b36a208f1947ad3b6","_id":"@aliefe04/kanit@0.1.1","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-gTSWCQbZLCoTHlfhX3Dda+6sY8EbTu0UMi5BK81xoozBR93H2kP9GHdhH+fmlZ9yxhgT3DGeO/+YdDr07NM/Ow==","shasum":"d1e89671e602d84c809d9704e747d8a29f5c1390","tarball":"https://registry.npmjs.org/@aliefe04/kanit/-/kanit-0.1.1.tgz","fileCount":15,"unpackedSize":1209017,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDRK4EB7mUYmvJiXCFi6Q9t0MzJKe2EGoOuQ6LuBNZerAiEAhT0q2khzz7bztauuenLEK80luYFYmfx2M6ay04v7kxI="}]},"_npmUser":{"name":"aliefe04","email":"efecakici98@gmail.com"},"directories":{},"maintainers":[{"name":"aliefe04","email":"efecakici98@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kanit_0.1.1_1788722106551_0.004018860267319013"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-06T19:13:34.690Z","modified":"2026-09-06T19:15:06.872Z","0.1.0":"2026-09-06T19:13:35.047Z","0.1.1":"2026-09-06T19:15:06.698Z"},"author":{"name":"Kanit"},"license":"Apache-2.0","keywords":["compliance","soc2","iso27001","security","aws","github","audit","cli"],"description":"Continuous compliance engine for SOC 2 & ISO 27001 (AWS & GitHub)","maintainers":[{"name":"aliefe04","email":"efecakici98@gmail.com"}],"readme":"# Kanit 🛡️\n\n> Production-ready open-source continuous compliance engine for **SOC 2** and **ISO 27001**. Evaluates real AWS infrastructure and GitHub repositories, verifies evidence integrity using SHA-256 digests, provides automated remediation instructions, and exports auditor-ready reports in Terminal, JSON, Markdown, HTML, and pure JavaScript PDF.\n\n---\n\n## Key Features\n\n- **SOC 2 & ISO 27001 Control Mapping**: Every check maps directly to Trust Services Criteria (`CC6.1`–`CC8.1`) and ISO/IEC 27001:2022 clauses (`A.5`–`A.8`).\n- **Real SDKs with Deterministic Mock Fallback**: Production `@aws-sdk/client-*` and `@octokit/rest` integrations that run offline with `--mock` or `KANIT_MOCK=1` when credentials are absent.\n- **Tamper-Evident SHA-256 Audit Trail**: Canonicalized JSON evidence hashing ensures auditor verification.\n- **Pure JavaScript PDF Generation**: Built with `pdf-lib` without any native binaries, Puppeteer, or canvas dependencies.\n- **Automated Remediation Engine**: Concrete AWS CLI, GitHub CLI, and Terraform definitions for every failing control.\n- **CI/CD Native**: GitHub Action composite workflow and sub-second CLI scan evaluation.\n\n---\n\n## Installation\n\n```bash\n# Global CLI install\nnpm install -g kanit\n\n# Or run via npx\nnpx kanit scan --mock\n```\n\n---\n\n## Usage\n\n### Quick Scan (Demo / Mock Mode)\n```bash\nkanit scan --mock\n```\n\n### Full Audit Against Real AWS & GitHub\nEnsure `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, and `GITHUB_TOKEN` are in your environment:\n```bash\nkanit scan --format terminal\n```\n\n### Generate Auditor Reports\n```bash\n# Export PDF Report\nkanit scan --mock --format pdf --output compliance-audit.pdf\n\n# Export Markdown Report for PR / Issue comments\nkanit scan --mock --format markdown --output AUDIT.md\n\n# Export JSON for SIEM / Data Lakes\nkanit scan --mock --format json --output audit.json\n\n# Export HTML Dashboard\nkanit scan --mock --format html --output report.html\n```\n\n### CI/CD Quality Gate\nFail pipeline if compliance drops below 90% or if any CRITICAL issue is detected:\n```bash\nkanit scan --fail-under 90 --fail-on-severity CRITICAL\n```\n\n### Remediating Findings\n```bash\n# View all failed controls and their remediation plans\nkanit fix --mock\n\n# View specific remediation guide and Terraform snippet\nkanit fix AWS-03\nkanit fix GH-02\n```\n\n---\n\n## Supported Checks\n\n| ID | Provider | Title | Severity | Framework Controls |\n|---|---|---|---|---|\n| `GH-01` | GitHub | Organization MFA Enforcement | CRITICAL | SOC 2: CC6.1, ISO 27001: A.5.15 |\n| `GH-02` | GitHub | Branch Protection Enabled | HIGH | SOC 2: CC8.1, ISO 27001: A.8.28 |\n| `GH-03` | GitHub | Pull Request Approvals Required | HIGH | SOC 2: CC8.1, ISO 27001: A.8.32 |\n| `GH-04` | GitHub | Prohibit Force Pushes & Deletion | HIGH | SOC 2: CC8.1, ISO 27001: A.8.28 |\n| `GH-05` | GitHub | Signed Commit Verification | MEDIUM | SOC 2: CC8.1, ISO 27001: A.8.28 |\n| `GH-06` | GitHub | Dependabot & Secret Scanning | HIGH | SOC 2: CC7.1, ISO 27001: A.8.8 |\n| `GH-07` | GitHub | Dismiss Stale Approvals on Push | MEDIUM | SOC 2: CC8.1, ISO 27001: A.8.32 |\n| `AWS-01` | AWS | Root Account MFA Active | CRITICAL | SOC 2: CC6.1, ISO 27001: A.5.15 |\n| `AWS-02` | AWS | No Root Account Access Keys | CRITICAL | SOC 2: CC6.1, ISO 27001: A.5.15 |\n| `AWS-03` | AWS | S3 Block Public Access Enabled | CRITICAL | SOC 2: CC6.6, ISO 27001: A.8.20 |\n| `AWS-04` | AWS | Multi-Region CloudTrail Active | HIGH | SOC 2: CC7.2, ISO 27001: A.8.15 |\n| `AWS-05` | AWS | Default EBS Volume Encryption | HIGH | SOC 2: CC6.7, ISO 27001: A.8.24 |\n| `AWS-06` | AWS | RDS Storage Encryption Enabled | HIGH | SOC 2: CC6.7, ISO 27001: A.8.24 |\n| `AWS-07` | AWS | Strong Password Policy Enforced | MEDIUM | SOC 2: CC6.1, ISO 27001: A.5.17 |\n| `AWS-08` | AWS | No Open Security Group Ingress | HIGH | SOC 2: CC6.6, ISO 27001: A.8.20 |\n| `AWS-09` | AWS | IAM Access Key Rotation (≤ 90d) | MEDIUM | SOC 2: CC6.1, ISO 27001: A.5.15 |\n| `AWS-10` | AWS | S3 Bucket Server-Side Encryption | HIGH | SOC 2: CC6.7, ISO 27001: A.8.24 |\n\n---\n\n## Configuration (`kanit.config.json`)\n\n```json\n{\n  \"frameworks\": [\"SOC2\", \"ISO27001\"],\n  \"providers\": {\n    \"github\": {\n      \"org\": \"my-org\",\n      \"repo\": \"my-repo\"\n    },\n    \"aws\": {\n      \"region\": \"us-east-1\"\n    }\n  },\n  \"thresholds\": {\n    \"minScore\": 80,\n    \"failOnSeverity\": \"CRITICAL\"\n  },\n  \"mock\": false\n}\n```\n\n---\n\n## GitHub Action\n\n```yaml\nname: Continuous Compliance\n\non:\n  push:\n    branches: [main]\n  pull_request:\n  schedule:\n    - cron: '0 0 * * *' # Daily scan\n\njobs:\n  compliance:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: ./\n        with:\n          format: markdown\n          output: compliance-report.md\n          fail-under: 85\n          fail-on-severity: CRITICAL\n          mock: true\n```\n\n---\n\n## Testing\n\n```bash\nnpm run build\nnpm test\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}