Skip to content

Project Governance, Codespaces Trial, NL RBAC, Optimistic Locking Fixes

Choose a tag to compare

@valhuber valhuber released this 27 Jun 17:51
· 126 commits to main since this release

Project Governance, Codespaces Trial, Optimistic Locking Fixes

This release brings three things to GenAI-Logic: a Project Governance technology preview (traceability from requirement through to verified correctness), a no-install Codespaces trial path, and two correctness fixes to optimistic locking and LogicBank's multi-relationship handling.

 


Project Governance (Technology Preview)

GenAI-Logic projects are governed by declarative rules. Project Governance extends that into a complete, generated story from business requirement through to verified correctness — no separate documentation, no drift, because every layer traces back to the same logic file:

Business Requirement  →  Declarative Rules  →  Logic Flow  →  Tests
      (docstring)           (Rule.* DSL)         (diagram)     (Behave)

Three tools, all generated from code:

Tool Question answered How to invoke
Logic Flow What does this system do? "create logic diagram"
Vital Signs (Health Check) Is it implemented correctly? "vital signs"
Behave Tests Did it work as specified? run your Behave suite

Logic Flow renders an SVG dependency diagram plus a numbered rule summary, sourced from your rule declarations and the module docstring in each logic/logic_discovery/*.py file. Vital Signs checks rule adoption, dependency tracking, and docstring hygiene (flags any calling= function missing a one-line docstring — that line is what shows up in the diagram).

Docs: https://apilogicserver.github.io/Docs/IDE-Health-Check/

 


Try It Without Installing — Codespaces

A trimmed-down Manager workspace is now available for trying GenAI-Logic entirely in the browser via GitHub Codespaces — no local Python, no venv setup. Click through from the template, and you're in a working Manager in a couple of minutes.

Docs: https://apilogicserver.github.io/Docs/DevOps-GitHub/

 


Natural Language RBAC Grants

Role-based access control declarations (security/declare_security.py) can now be generated directly from natural language security requirements, the same translation philosophy already used for business logic rules. Describe roles, default table-level permissions, and row-level Grant/GlobalFilter requirements in plain English; the AI assistant translates them into the declarative security DSL — roles, DefaultRolePermission, Grant (including multi-tenant row filters keyed off user properties), and GlobalFilter.

Docs: https://apilogicserver.github.io/Docs/Security-Overview/

 


Fixes

Optimistic Locking — S_CheckSum now populated on insert, and stable across processes.

Two related bugs in api/system/opt_locking/opt_locking.py, fixed together:

  • S_CheckSum previously came back null on a POST (insert) response — the checksum-stamping listener only fires on read, not on a row created in the same request. A client had to issue an extra GET before it could PATCH/DELETE a row it just created, under opt_locking=required. Fixed: the checksum is now stamped at flush time too, so POST and GET are symmetric.
  • The checksum itself used Python's built-in hash(), which is seed/platform-dependent — different processes (replicas, restarts, mixed-arch nodes) could compute different checksums for the same row, causing spurious 409 lock failures on valid updates. Fixed: checksums are now computed with sha256, deterministic everywhere. The PYTHONHASHSEED=0 workaround for repeatable test checksums is no longer needed.

Docs: https://apilogicserver.github.io/Docs/API-Opt-Lock/

LogicBank — child_role_name now works correctly for multi-relationship parent/child pairs.

If a child class has two or more relationships to the same parent class (e.g. an Employee that can be works_for one Department and on_loan to another), Rule.sum, Rule.count, and Rule.copy previously could pick the wrong relationship, fail to disambiguate, or — for Rule.copy — had no way to disambiguate at all. Fixed across all three, plus the underlying live-formula cascade and LogicRow.link(). LogicBank bumped to 1.31.04.

Docs: https://apilogicserver.github.io/Docs/Logic-Type-Sum/#multiple-relationships-to-the-same-parent