• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

veeso / ic-dbms / 37625090341
95%

Build:
DEFAULT BRANCH: main
Ran 07 Oct 2026 01:01PM UTC
Jobs 1
Files 11
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Oct 2026 12:59PM UTC coverage: 93.536% (+9.7%) from 83.795%
37625090341

push

github

web-flow
feat(canister): track transaction ownership in the canister (#6)

* feat!: migrate to wasm-dbms 0.10

wasm-dbms 0.10 removes the engine access control list and stops recording who opened a transaction. Adapt the canister runtime, the DbmsCanister macro, the clients, the wrapper canister and the PocketIC tests to the new signatures: DbmsContext, WasmDbmsDatabase and DatabaseSchema lose their access-control type parameter, begin_transaction takes no owner and has_transaction takes no caller. Access control and transaction ownership are re-added in the canister by the next two commits of this branch.

refs #3

* feat(acl)!: store the access control list in a reserved canister table

wasm-dbms 0.10 leaves access control to the embedder. Admin principals now live in the reserved ic_dbms_acl table that #[derive(DbmsCanister)] registers at init and composes with the user schema through CanisterSchema, so drift detection and migrations cover it. Every endpoint requires Permission::Admin; controllers may always run migrations so a drifted canister can be healed. IcDbmsError becomes an enum with Acl and Dbms variants, the Candid interface gains acl_grant, acl_revoke, acl_list and my_permissions, begin_transaction requires Admin and returns a Result, and table names starting with ic_dbms_ are rejected at compile time.

The permission model has a single Admin variant and is shaped to grow into per-table read, insert, update and delete grants.

refs #3

* feat(canister): track transaction ownership in the canister

wasm-dbms 0.10 identifies a transaction by its id alone. The canister now keeps a heap-only ledger from transaction id to the principal that opened it: begin_transaction records the caller, every call that names a transaction id traps unless the caller opened it and the id is still open, and commit and rollback remove the entry whether or not the engine call succeeded. Stale entries for ids the engine already closed are evicted on lookup. The generated ... (continued)

817 of 891 new or added lines in 7 files covered. (91.69%)

1 existing line in 1 file now uncovered.

1201 of 1284 relevant lines covered (93.54%)

10.0 hits per line

Uncovered Changes

Lines Coverage ∆ File
64
69.38
crates/ic-dbms-canister/src/schema.rs
3
92.86
crates/ic-dbms-api/src/acl.rs
3
93.22
-6.78% crates/ic-dbms-api/src/error.rs
3
98.18
crates/ic-dbms-canister/src/acl.rs
1
99.82
22.62% crates/ic-dbms-canister/src/api.rs

Coverage Regressions

Lines Coverage ∆ File
1
93.22
-6.78% crates/ic-dbms-api/src/error.rs
Jobs
ID Job ID Ran Files Coverage
1 37625090341.1 07 Oct 2026 01:01PM UTC 11
93.54
GitHub Action Run
Source Files on build 37625090341
  • Tree
  • List 11
  • Changed 5
  • Source Changed 5
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37625090341
  • 216649f2 on github
  • Prev Build on main (#37605214103)
  • Next Build on main (#37635513289)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc