Skip to content

Use EACL for the recursive user directory demo - #3

Draft
theronic wants to merge 1 commit into
codex/relay-pagination-cache-v8from
codex/eacl-directory-recursive-demo
Draft

Use EACL for the recursive user directory demo#3
theronic wants to merge 1 commit into
codex/relay-pagination-cache-v8from
codex/eacl-directory-recursive-demo

Conversation

@theronic

@theronic theronic commented Aug 3, 2026

Copy link
Copy Markdown
Owner

What changed

  • remove the Explorer-only indexed user directory and enumerate users through EACL lookup-subjects
  • compute the displayed total through EACL count-subjects; no user-directory result or count is taken from seed metadata
  • propagate the Cache toggle to both directory queries, so disabled and enabled timings measure the actual EACL path
  • paginate users with the v8 opaque Relay cursors instead of numeric offsets
  • add a hidden platform authorization resource that registers every seeded user
  • add recursive nested-team inheritance (parent->admin) and seed deterministic parent chains so server visibility exercises recursive schema
  • pin EACL and EACL DataScript to Cache recursive plans and bound page prefetch eacl#100
  • update browser tests and the query benchmark to cover the EACL-backed directory and recursive grants

Demo behavior

The platform resource is an authorization/indexing root and is hidden from the normal resource columns. Teams form bounded parent chains within each account. A leader of an earlier team inherits admin over later child teams, and server/view reaches that grant through team->view.

The directory latency now covers both the page lookup and exact EACL count. It does not time React rendering or seed metadata.

Validation

  • Shadow app and test builds: 0 warnings
  • browser CLJS suite: 45 tests, 219 assertions, 0 failures/errors
  • live smoke seed: 10,000 servers, 38 users; opaque next/previous user cursors work
  • 10k recursive benchmark, 20-result server page: uncached 3.255 ms mean / 3.200 ms p50; cached 0.146 ms mean
  • 10k full user-directory workload (page plus count): uncached 2.611 ms mean / 2.600 ms p50; cached 0.156 ms mean

Parent PR: #2
Engine optimization: theronic/eacl#100

@theronic

theronic commented Aug 3, 2026

Copy link
Copy Markdown
Owner Author

Final browser measurements with the directory fully EACL-backed (both lookup-subjects and count-subjects are timed; no seed-metadata total):

10k-server workload cache disabled cache enabled
recursive server page, 20 results 3.255 ms mean / 3.200 ms p50 0.146 ms mean
user directory page + exact count 2.611 ms mean / 2.600 ms p50 0.156 ms mean

The Cache toggle is passed to both directory queries. Browser suite: 45 tests / 219 assertions, all green.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant