Skip to content

Prove security server-side: tests that run as each demo user #352

Open

Description

@MendixMau

Source: external reviewer feedback (2026-10-14).

Now: SEC lint rules cover access rules statically, and UI journeys run per role. Neither proves a role is refused server-side, for example by calling the microflow or retrieving the entity directly.

Proposal: probe whether mxcli test can run a test as a given user or role without passwords. If it can, generate one allow test and one deny test per role per entity and microflow from the security matrix.

Value: high.


Generated by Claude Code

Activity

  1. MendixMau commented on Oct 14, 2026

    @MendixMau
    OwnerAuthor

    Gain test case

    Metric: server-side access holes caught before UAT.

    • Bench: in a test model, plant N holes, for example:
      • an entity readable by the wrong role (missing XPath);
      • a microflow executable by the wrong role;
      • a write right on a status attribute.
    • Before: run the UI journey suite. It passes, because the UI hides the hole, so the expected catch is about 0/N.
    • Target: per-role server tests catch N/N, with a generated allow-and-deny pair per role × entity/microflow.
    • Also report: number of tests generated, and run time.

    Generated by Claude Code

  2. MendixMau commented on Oct 14, 2026

    @MendixMau
    OwnerAuthor

    Tier: module close (minutes budget) for the module's own server-side security tests, run as each demo user. The full security report is a release gate item, run before UAT or production. This applies per skills/testing-shape.md §3 "Check tiers" once #364 lands. Until this issue is built, both rows are marked "(planned: #352)".


    Generated by Claude Code

  3. MendixMau commented on Oct 14, 2026

    @MendixMau
    OwnerAuthor

    Correction to my comment above: review of #364 renamed "tiers" to check moments, so that it does not collide with testing-shape.md §1's "No tiers". The placement is unchanged. Per-module security tests run at the module close moment, and the full security report runs at the release gate moment.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions