Lewati ke isi

T6B Package Denominator (SC-FEES / W10)

Scope: SC-FEES source-declared topology only. This records the T0-E2 / T0-C closure that already exists. It does not certify W10. It does not replace a fresh disposable install proof for T6B.

Source identity: FE tree 8362e7db… / BE tree a31fe594… (T6A application trees; no T6B application edits).

Package: SC-FEES · installer scola_bundle_fees · flag scola_fees · entitlement independent of install.

Declared closure checksum: df64d2e7ca2a63e4c3f45c17e30addbe4d937734a6e2a70ec180425b8ebd1b99

What static topology already says

package_topology.py + package_topology_ci_check.py on this HEAD: PASS.

Standalone scola_bundle_fees declared closure (Scola modules only):

  • Core: scola_bundle_core, scola_core, scola_attendance, scola_lesson_hours, scola_news, scola_parent, scola_portal, scola_timetable
  • Internal: scola_platform_support, scola_identity_admin, scola_observability, scola_leadership_hub, scola_platform
  • Fees: scola_fees, scola_bundle_fees
  • Auto-install bridges: scola_parent_fees_bridge, scola_portal_fees_bridge

Not in standalone Scola closure:

  • scola_admission / scola_admission_fees_bridge
  • scola_account / scola_bundle_finance (SC-FIN)
  • scola_cbt, foundation, BOS, payroll commercial SKUs
  • scola_fees peer-SKU violations reported by the analyzer: none

Composite SC-ADM+SC-FEES is intentionally_composite; expected bridge scola_admission_fees_bridge only when both parents coexist.

T0-C suite manifest SC-FEES.json:

  • install_topology_status: TOPOLOGY_CERTIFIED_INDEPENDENT
  • business_workflow_status: BUSINESS_WORKFLOW_NOT_YET_CERTIFIED
  • placeholder selector tests/e2e/package/fees_topology_smoke.spec.ts is not PKG-FEES-W10

What this denominator does not claim

Assert from T6B prompt Status this tranche
Fresh DB install scola_bundle_fees NOT RUN (product gate FAIL; no disposable mutation)
Entitlement default OFF on fresh install NOT RUN
Route/API/menu closed when entitlement OFF NOT RUN live; source registry has featureFlag: scola_fees but FE SPP section is documented as always-visible inside a shell labeled SC-FIN
Odoo account / openeducat_fees not pulled FALSE in source: scola_fees/__manifest__.py depends on both. Analyzer does not treat Odoo account as commercial SC-FIN, but Fees controllers post through account.payment.register
Admission bridge absent on standalone DECLARED by auto_install depends; not proven on a fresh DB this tranche
Live mixed dev/demo match declared auto_install FAIL vs contract: both parents installed, fees bridges uninstalled
Topology mutation CI (undeclared peer / hidden import / auto-install without parent / bridge with entitlement OFF) Existing T0-E2 CI PASS for declared graph. Entitlement-OFF live mutation not added. Hidden Odoo account dependency is a product question, not a CI failure today

Disposition legend (W10 surfaces)

  • T6B_SUPPORTED — intended SC-FEES leaf; not certified
  • BRIDGE_ONLY — requires peer SKU and peer entitlement
  • SC_FIN_SURFACE — accounting/BOS; must not be certified as SC-FEES
  • LEGACY_REMOVE — native/alternate path
  • PRODUCT_DECISION_REQUIRED — exposed or inferred; unsigned
  • INTERNAL — non-user

Traceability (source map, not runtime proof)

Leaf/route/API/action Actor Capability Tenant/scope rule Package Test ID Disposition
FE app finance SPP section staff finance.billing.view undocumented; app package: "SC-FIN"; no moduleKey mixed SC-FEES/SC-FIN RT-W10-UIA-01 PRODUCT_DECISION_REQUIRED
/payment/schedule /payment/enrollment /payment/templates staff billing/fees view company? SC-FEES intended RT-W10-POS-01 T6B_SUPPORTED
/admin/finance/konfirmasi-transfer cash receive payment-setup cashier/treasurer verify / receive_cash / setup company? SC-FEES RT-W10-STA-01 PRODUCT_DECISION_REQUIRED
/parent/payment-list parent billing parent parent billing linked child unproven SC-CORE+FEES bridge RT-W10-SCP-01 BRIDGE_ONLY
/accounting/* journal/invoice/recon/BOS finance scola_account SC-FIN SC-FIN RT-W10-XMD-01 SC_FIN_SURFACE
/api/v1/finance/fee-templates/* /fee-schedules/* staff view vs manage mixed; prefix /api/v1/finance/view company helper incomplete SC-FEES RT-W10-NEG-01 PRODUCT_DECISION_REQUIRED
/api/v1/finance/fee-enrollments/save\|delete\|action staff registry view prefix; controller _can_manage browse ID then write; student lookup unscoped SC-FEES RT-W10-TEN-01 PRODUCT_DECISION_REQUIRED
/api/v1/finance/accounting/* bulk-create/approve/payment-submit staff finance.billing.manage under scola_fees account.payment.register.sudo() SC-FEES leaking SC-FIN RT-W10-XMD-01 PRODUCT_DECISION_REQUIRED
/api/v1/payment/manual/* /api/v1/payment/ payer/operator finance.payment.manage invoice/company? SC-FEES RT-W10-POS-01 PRODUCT_DECISION_REQUIRED
/payment/callback/midtrans /payment/callback/xendit public public signature/replay unsigned SC-FEES RT-W10-IDM-01 PRODUCT_DECISION_REQUIRED
/api/v1/parent/children /parent/billing /parent/invoices/<id> parent parent child predicate bridge RT-W10-SCP-01 BRIDGE_ONLY
/api/fees/ prefix staff finance.billing.view SC-FEES RT-W10-NEG-01 PRODUCT_DECISION_REQUIRED
Native OpenEduCat fees / Odoo account.move / /web/dataset ACL user native native alternate RT-W10-NEG-01 LEGACY_REMOVE
scola_admission_fees_bridge overlay both entitlements both parents composite RT-W10-XMD-01 BRIDGE_ONLY
Core smoke Fees business cases Core must remain absent (DEC-001)

Topology checksum inputs

  • FE: financeApp.js, financeRoutes.js, parent finance fragments, apiRouteAccessRegistry.js
  • BE: scola_fees, scola_bundle_fees, three fees bridges, api_route_access.py finance/payment rows, platform_entitlements.py SC-FEES
  • Tests: PKG-FEES-W10 missing; placeholder fees_topology_smoke.spec.ts is not coverage
  • Baseline: T0-C-evidence/baselines/SC-FEES-closure.json

Independent recompute vs T0-C baseline

Recomputed closure_checksum on this HEAD equals pinned baseline df64d2e7…. Declared standalone graph did not drift. W10 business certification remains open.


T6B.1 overlay install proof (not a demo/Golden mutation)

Application identity: FE 2f716594ee76… / tree 8606e7bb… · BE e78d06d1ff64… / tree 6d13752c…

Disposable DB scola_t6b_audit_20260817 was created with createdb -T scola_golden (clone UUID 2bf5fd27-9390-11f1-9617-28e8d4be73f5 is expected). Installed on the clone only:

  • scola_bundle_fees 17.0.1.0.0
  • scola_fees 17.0.1.1.0
  • scola_parent_fees_bridge
  • scola_account uninstalled; Odoo account remains as scola_fees hard-dep
  • Canonical Golden scola_golden / :8090 was not started and not upgraded

package_topology_ci_check.py on this tip: PASS (15 SKUs). Declared SC-FEES checksum still df64d2e7…. Adding scola_parent.group_scola_parent ACL xmlid inside scola_fees did not add a new manifest depend (scola_parent already in Core closure).

Entitlement OFF was proven live (RT-W10-UIA-01). Fresh empty-DB install scola_bundle_fees (no Golden clone) was not repeated; overlay clone + module install is the T6B.1 runtime proof.

T0-C business_workflow_status remains BUSINESS_WORKFLOW_NOT_YET_CERTIFIED until an independent auditor issues a verdict.