• v0.11.1 20b9db4606

    v0.11.1 Stable

    x released this 2026-10-21 16:19:43 +00:00 | 5 commits to main since this release

    VSKI v0.11.1

    Fix: per-item access rules on graphs

    Graph list and read endpoints evaluate their access rule twice: once as
    a gate when the request arrives (no node or edge in hand yet), then
    again per item. The gate ran the rule with no item data, so any rule
    that referenced item fields - for example listRule: "label = 'public'" - failed evaluation at the gate and every non-admin request
    errored out. The per-item pass documented in v0.10.0 (filtering,
    scan-ahead, "filtered": true responses) never ran.

    The gate now defers to the per-item evaluation when a rule references
    item fields:

    • empty rules still deny, "*" and auth-only rules
      (@request.auth.id != '') still decide at the gate, and malformed
      rules still error;
    • single reads (GET .../nodes/:nodeId, .../edges/:edgeId) apply
      viewRule per item, so a field-based view rule hides individual
      items instead of failing the request;
    • list endpoints filter with the documented scan-ahead and report
      "filtered": true, counting only visible items;
    • traversal endpoints (neighbors, traverse, path, subgraph,
      stats) remain strictly gated by viewRule with no per-item pass,
      unchanged.

    The behaviour is covered end-to-end in both the Deno and Python graph
    suites: a field-based listRule/viewRule against a non-admin client,
    including the filtered flag and per-node denial.

    Documentation

    The project wiki gained a
    Graphs reference page and a
    knowledge-graph tutorial -
    linking collection records through a graph (works_on/authored/
    depends_on edges), traversal queries, a sync pattern for record
    changes, rules, and the dashboard explorer. The Collections page was
    corrected along the way: select fields take
    options: { values: [...] }, not an array.

    Compatibility

    • No API, storage or SDK changes: @vski/sdk stays at 2.1.1,
      vski-sdk at 0.4.1.
    • Rules that already worked behave identically; requests that
      previously errored (field-referencing rules) now return filtered
      results.
    • Full-suite runs still show the environment-flaky
      gates/realtime/workflow-hook tests known from earlier releases -
      failing sets vary between runs of the same binary, and they reproduce
      on the committed v0.10.x baseline with clean data. The graph suite
      passes consistently.
    Downloads