Before Your Drupal AI Demo Goes Live, Rehearse the Permissions

Illustrated infographic summarizing: Drupal AI Demos Need a Permissions Rehearsal Before Launch

By Greg Nowak. Last updated 2026-09-18.

Updated 18 September 2026.

A polished Drupal AI demo can make a complicated workflow look effortless. Behind the chat box, however, there may be privileged endpoints, uploaded files, third-party models, approval gates, and tools capable of changing content or spending money.

The final rehearsal should therefore test more than prompts and presentation timing. It should establish who can execute each action, whether approvals survive loops safely, how sessions are separated, and how the team will stop the feature if something behaves unexpectedly.

This is not a replacement for penetration testing or a full security review. It is a practical launch check for business owners, operations leads, and agency teams that need to decide whether a demonstration is controlled enough to put in front of stakeholders.

Why permissions deserve their own rehearsal

Three Drupal security advisories published on 1 July 2026 illustrate why a successful happy-path test is not enough.

SA-CONTRIB-2026-067 reports that FlowDrop versions before 1.6.0 did not sufficiently enforce permissions on certain endpoints. A user with the broad View any session permission could potentially trigger workflow execution, incur LLM costs, cause tool side effects, or send messages into another user’s session. FlowDrop 1.6.0 introduced a separate Execute session workflow requirement for driving a session.

SA-CONTRIB-2026-068 concerns approval loops. Before version 1.6.0, FlowDrop did not sufficiently re-evaluate a human approval gate when a workflow iterated more than once. The operational lesson is important: approval of one proposed action should not silently authorize a revised action, retry, or later branch.

SA-CONTRIB-2026-065 covers insufficient validation of image uploads in the Drupal Canvas AI submodule. Files written to Drupal’s temporary directory could, in some cases, lead to cross-site scripting. An upload control that appears incidental to the presentation must be treated as a real application endpoint.

Use a go/no-go rehearsal matrix

Area Rehearsal Do not launch if
Roles Run each action as the demo user, editor, administrator, ordinary authenticated user, and anonymous visitor where relevant. A disallowed role can execute or alter a workflow.
Approval loops Force a retry, revision, second tool call, and branch after approval. The original approval carries over without another meaningful review.
Sessions Use two accounts and separate browsers; test direct session URLs before and after an approval pause. One account can read, message, or control another account’s session.
Uploads Try permitted files plus renamed, oversized, malformed, and MIME-mismatched files. An unexpected file is accepted or rendered unsafely.
Models and tools Confirm credentials, spending limits, rate limits, and write permissions for every integration. The demo can create uncontrolled cost or external changes.
Recovery Practise disabling the workflow, revoking credentials, and restoring the known-good build. Rollback depends on guesswork during the meeting.
The visible demonstration and its failure paths should both pass before stakeholders see the workflow.

Patch first, then test behaviour

Record the installed versions of FlowDrop, Canvas, Drupal AI components, and every connector used by the demonstration. Both FlowDrop advisories affect versions earlier than 1.6.0. The Canvas advisory identifies patched releases for four branches: 1.4.2, 1.5.2, 1.6.1, and 1.7.1. Those are advisory-specific minimums, not instructions to downgrade a newer supported release.

For a Composer-managed site, inspect the current installation and proposed changes in a development or staging environment:

composer show drupal/flowdrop
composer show drupal/canvas
composer audit
composer outdated "drupal/*"
composer update drupal/flowdrop drupal/canvas --with-all-dependencies --dry-run

Only include packages that the project actually uses. After taking appropriate backups, apply and test the update outside production:

composer update drupal/flowdrop drupal/canvas --with-all-dependencies
drush updatedb
drush cache:rebuild
drush config:export --diff

Review and commit the resulting lock-file and configuration changes. Promote that tested build through the normal deployment process; production should generally receive the committed dependencies with composer install --no-dev, rather than resolving fresh versions with composer update.

Test access as behaviour, not a permission-screen screenshot

Create a small role-to-action map covering workflow creation, editing, execution, session viewing, approval, uploads, and administration. Give the meeting account only the permissions needed for the demonstration. Then verify that prohibited requests fail on the server. Hiding a button is useful interface design, but it is not proof of access control.

Use at least two accounts for session testing. Start a workflow as one person, observe its session identifier, and attempt to view or drive it as the other. Repeat after refreshing the browser and while the workflow is paused. This catches boundary failures that a single administrator account will conceal.

Make approval specific and understandable

An approver should be able to see what action is proposed, which content or external system it affects, the important input, and the likely side effects. If any of those elements change after a retry or revision, send the workflow back for approval.

Also rehearse refusal. Confirm that rejecting or abandoning an action does not leave a queued tool call, half-finished content change, or workflow that another user can resume unexpectedly. The goal is not simply to display an approval button; it is to preserve the meaning of the person’s decision.

Prefer a smaller demo to an unexplained risk

Proceed when patched versions are installed, permissions are minimal, sessions remain separate, repeated approvals behave predictably, uploads are constrained, and logs identify who initiated consequential actions. Assign one person to watch provider usage and another to own the stop decision.

If an answer remains uncertain, reduce the scope: use non-sensitive content, remove uploads, disconnect write-capable tools, cap provider usage, or demonstrate a recorded path while the issue is resolved. A controlled demonstration builds more confidence than an ambitious one the team cannot safely explain.

If you would value an independent review, Greg can help examine the module inventory, permission model, workflow behaviour, deployment plan, and rollback route before the demonstration reaches clients or internal stakeholders. Talk with Greg about a Drupal AI readiness review.

Related on GrN.dk

Need help with this kind of work?

Discuss your Drupal AI readiness review Get in touch with Greg.

Sources

Latest articles

AI crawlers can copy a familiar name. Here’s how to verify signed agents at the edge while keeping legitimate automated traffic moving.

A critical Webform release is a reminder to audit every Drupal codebase, configuration and deployment—not just the main production website.

A secure AI workflow can turn Meet and Teams transcripts into approved decisions and tasks in Jira or Asana—without giving up control.

NGINX 1.31.5 can route on JSON body values. Here’s how to weigh the performance, security, and operational trade-offs before using it.

OpenAI can keep agent sessions running, but reliable workflows still depend on clear failure states, safe retries, validation, limits and human fallback.

AI can identify termination deadlines and price adjustments in supplier contracts, route uncertain findings for approval and create the right reminders.

Why a DNS record can exist in a dashboard yet fail publicly—and how to trace zone cuts, verify glue, and fix the right side of a live delegation.

An Apache version below 2.4.68 may still be patched. Package provenance, vendor advisories, module checks and runtime evidence reveal the real position.

PHP 8.2 security support ends on December 31, 2026. Here is how to audit, test, and migrate a mixed CMS estate without rushing production changes.

How Danish businesses can automate Gmail and Microsoft 365 with rapid sorting, limited permissions and human approval.