ci: fork verification pipeline, deploy gate, secret placeholders, audit Round 4 - #73
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request replaces hardcoded secrets and tokens with placeholder instructions in .env.example and README-PLATFORM.md to prevent credential exposure. It also introduces a new HTML audit document comparing Cal.com and Crove-Cal features. Feedback on the audit document highlights a mismatch between the summary card counts and the detailed table entries, which should be corrected for consistency.
| <div class="cards"> | ||
| <div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div> | ||
| <div class="card warn"><div class="num">2</div><div class="lbl">Có một phần / bản cũ</div></div> | ||
| <div class="card ok"><div class="num">4</div><div class="lbl">Không cần cho use-case DOS</div></div> | ||
| <div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div> | ||
| </div> |
There was a problem hiding this comment.
There is a mismatch between the summary cards and the actual counts in the detailed table below:
- The count of items with a partial/old version status (
b-part) is 5 (Workflows 2.0, Troubleshooter 2.0, PBAC role overlays, Audit logs, Salesforce improvements), but the card shows 2. - The count of items marked as not needed for the DOS use-case (
KHÔNG CẦNpriority) is 6 (Cal.ai, Cal Events, Cal Pay, Design system, Cal.com Agents, Salesforce improvements), but the card shows 4.
Updating these numbers will ensure the summary section is accurate and consistent with the detailed table.
| <div class="cards"> | |
| <div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div> | |
| <div class="card warn"><div class="num">2</div><div class="lbl">Có một phần / bản cũ</div></div> | |
| <div class="card ok"><div class="num">4</div><div class="lbl">Không cần cho use-case DOS</div></div> | |
| <div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div> | |
| </div> | |
| <div class="cards"> | |
| <div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div> | |
| <div class="card warn"><div class="num">5</div><div class="lbl">Có một phần / bản cũ</div></div> | |
| <div class="card ok"><div class="num">6</div><div class="lbl">Không cần cho use-case DOS</div></div> | |
| <div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div> | |
| </div> |
The upstream All checks workflow only fires on merge_group and is guarded to calcom/cal.diy, so nothing verified pushes or PRs on DOS/Crove-Cal (audit finding HI-09). fork-ci.yml runs type-check, lint and unit tests on pull_request and push to dev/main, reusing the existing reusable workflows. deploy-docker.yml now requires a type-check job to pass before publishing :latest to GHCR. The caller grants actions:write explicitly: lint.yml asks for it and a called workflow requesting more than the default GITHUB_TOKEN grant makes every run die as a startup_failure before any job is created.
apps/api/v2/.env.example carried real NEXTAUTH_SECRET, JWT_SECRET, CALENDSO_ENCRYPTION_KEY and CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY values and README-PLATFORM.md embedded a fully-signed example JWT (audit findings CR-08 and LO-13). Anyone copying the example would run with publicly-known keys. Replaced with placeholders.
… report Round 4 status (2026-09-16, verified in code): MD-03, MD-05/06, LO-02, LO-03, MD-29 were already fixed by commits after the last report update and are now recorded; HI-09 (fork CI + deploy gate) and CR-08 (env example placeholders) close in this PR. Every finding now carries a status badge (fixed / partial / decision / open) with per-finding notes. Also adds a dark-theme Vietnamese report comparing Cal.com features (v6.2-v6.9, post closed-source) against the fork, with per-item repo verification evidence and a recommended order. The audit report is switched to a native dark theme to match the docs standard.
bd28132 to
8dd12ef
Compare
The embed-react program pulls in embed-core sources through tsconfig paths; those files reference the node 'process' global. Locally the root-hoisted @types/node happened to be visible, but a clean CI install resolves differently and every run failed with TS2591 (Cannot find name 'process'). embed-core already declares "types": ["node"]; mirror it here so the check is deterministic instead of layout-dependent.
Commit 4234549 untracked the app-store generated files, relying on the pre-commit hook to regenerate them locally. A clean CI checkout has no such hook, so type-check and unit tests died on missing apps.schemas.generated / apps.metadata.generated imports. Run the same 'yarn app-store:build' the hook uses right after yarn install.
embed-snippet pulls embed-core sources into its program and hit the same TS2591 'process' failure as embed-react; declare node types the same way. The /api/health test still asserted the pre-MD-15 behavior where the raw database error string was returned in the response body. The route no longer leaks it, so assert the error field is undefined instead. Verified locally: 3/3 tests pass.
Local runs pass because platform packages carry dist/ artifacts from earlier builds, and 'types' resolution plus skipLibCheck hides redeclarations in platform/types sources. A clean CI checkout has no dist, so apps/web type-checked those sources directly and failed with a wall of TS2612. Making type-check depend on ^build gives CI the same artifacts local development always has.
What
fork-ci.ymlruns type-check + lint + unit tests on pull_request and push to dev/main. The upstream All checks workflow only fires on merge_group and is guarded tocalcom/cal.diy, so nothing verified this fork until now.deploy-docker.ymlnow requires a type-check job to pass before publishing:latestto GHCR.apps/api/v2/.env.exampleshipped real NEXTAUTH_SECRET / JWT_SECRET / CALENDSO_ENCRYPTION_KEY / CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY values and README-PLATFORM.md embedded a fully-signed example JWT. All replaced with placeholders.docs/audit/2026-09-08-audit-report.html: records fixes verified in code since the last update (MD-03, MD-05/06, LO-02, LO-03, MD-29), marks HI-09/CR-08 fixed, adds a status badge to every finding, switches to native dark theme.docs/audit/2026-09-16-calcom-vs-crove-cal-gap.html(new, Vietnamese, dark): Cal.com features v6.2-v6.9 the fork lacks, each with repo verification evidence and a recommended order. Context: Cal.com went closed source in 2026-04, so none of this can arrive via upstream sync anymore.Evidence
node --check; STATUS map covers all 76 findings.Risk
🤖 Generated by ZCode