Test Protocol on the shared platform
This walkthrough was performed in the deployed browser UI. It uses the existing Protocol screens, the central Task Hub and the real CIB seven process. Screenshots show synthetic test records; choose your own unique title.
Before you start
Open Applications. Click Sign in with Keycloak. This is the local development realm central-dev, not the enterprise identity provider and not Keycloak’s master administration console.
| Username | Role in this test | Displayed employee name |
|---|---|---|
author | Creates and submits the Protocol | Протокола Автор |
approver | First reviewer | Первый Согласующий |
reviewer | Second reviewer, deliberately left pending | Второй Согласующий |
chairman | Signs the Protocol | Совещания Председатель |
outsider | Checks access denial | Сотрудник Другой |
substitute | Optional substitute-chairman test | Председателя Заместитель |
Use the existing Demo password from the private protocol-bpmn/central-access.txt on your local machine. Passwords are intentionally not published on this guide. The Keycloak administrator account and native CIB developer account are separate; neither is needed for the main walkthrough.
Testing several people: use separate browser profiles, or complete the sign-out steps below between roles. Separate tabs in one browser profile share login state. “Sign out” currently invalidates every platform session for that pilot user, including other browsers. Save any edits first.

2. Author: submit from the central Task Hub
- Open Central Task Hub. Click Sign in with Keycloak → if shown. Confirm the top-left account is
author. - In Search tasks, enter your unique Protocol title. Open Подготовить и отправить for that title. Do not complete unrelated existing tasks.
- Under Choose approvers, select Первый Согласующий and Второй Согласующий. Hold Ctrl on Windows / Cmd on macOS when selecting the second name.
- Optionally enter a Comment. Click Send for approval once. Wait until the selected task leaves your inbox; use ↻ Refresh if necessary.
- Return to the saved Protocol page and reload. Expect На подписании. Its BPMN banner should list Подписать протокол and two Согласовать / отклонить tasks. Both reviewers initially show в ожидании.


The actual route is Task Hub → task API → Protocol business API → CIB seven → Java delegate → integration service → Protocol callback. The existing durable command and process mapping protect the business operation from duplicate execution.
3. First reviewer: approve
- If sharing one browser profile, click Sign out in the Task Hub. Keycloak then asks Do you want to log out?; click Logout. Complete this step before attempting a different username.
- Click Sign in with Keycloak → and sign in as
approver. Confirm the account name before continuing. - Search for the same title. Open Согласовать / отклонить. The task displays the actual Protocol details and participants.
- Enter an optional comment. Click Approve protocol. Wait until the task leaves the filtered inbox.
- Leave
reviewer’s task untouched for the main test. It will demonstrate the existing chairman rule in the next step.


Optional rejection test: click Request changes with an empty comment first; the UI requires a comment. Add one and retry. In this existing Protocol business model, rejection records the review decision and permits a later approval; it does not automatically return the entire process to the author. The automated suite verified that path.
4. Chairman: sign
- Sign out fully, including Keycloak’s Logout confirmation. Sign into the Task Hub as
chairman. - Search for the same title and open Подписать протокол.
- Confirm Первый Согласующий · agreement approved and Второй Согласующий · agreement pending.
- Click Sign protocol once. Wait for the task to disappear.

This is the current Protocol rule: the chairman can sign while reviews are pending or declined. Signing closes the approval stage and cancels remaining BPMN review tasks. The platform migration deliberately preserves this behavior. Requiring every reviewer’s approval would be a separate business-rule/process change.
5. Verify completion in Protocol
- Open the saved Protocol URL. If asked to sign in again, click Войти через Keycloak. The currently signed-in chairman can view the record. Alternatively, sign out and return as
author. - Confirm business status Подписан and engine status Процесс BPMN · Завершён. The business key and instance ID must match the values saved at creation.
- Confirm there is no current-task list in the completed BPMN banner. История изменений shows the recorded business changes.
- As
reviewer, refresh the central inbox and search this title. The remaining review task must no longer be present.

The second reviewer may still appear as в ожидании in the saved business participant list. This is retained business data, not a still-running BPMN task. Check the BPMN state and inbox to distinguish them.
The existing Открыть CIB seven ↗ link opens the native engine tools for deeper inspection. They retain their separate developer login; product SSO does not automatically sign you into native engine administration. The main test can be completed using the Protocol banner and Task Hub without administrator access.
Additional acceptance checks
| Check | How to test | Expected |
|---|---|---|
| Another user | Create a fresh draft. As outsider, open its saved URL and search its title in the inbox. | Draft access is denied; its task is absent. Use a draft for this test because visibility rules may differ after submission. |
| Direct product URL | As outsider, open the starter product directly and try to sign in. | No product access; the starter is not in this user’s catalog. |
| Decline validation | As its assigned reviewer, choose Request changes without a comment. | The decision is not submitted; the UI asks for a comment. |
| Substitute | On a separate Protocol, configure an active substitute using the existing Замена control. | The substitute can sign; the original chairman cannot. Automated coverage verifies this rule. |
| New product uses the same platform | Open BA NextJS starter as author. Fill Request title → Submit request. As approver, open Review BA product request in Task Hub, check Approved → Complete task →. Return as author → Refresh requests. | Workflow becomes COMPLETED and decision is Approved. This product has a separate NextJS server API and business database. |
Developer steps, separately from BA testing
The developer maintains shared login, product grants, integration contracts and the deployment. The BA works in the product/BPMN and tests behavior. No CI/CD pipeline or embedded AI builder was added.
- Read
protocol-bpmn/PLATFORM.mdlocally. The auth, task API and integration services are separate containers. Protocol continues to have its existing NextJS frontend and NestJS backend. New products can use the full-stacknextjs-starter. - Before changing an integration, define its allowed caller, operation, input/output, authorization, timeout and retry/idempotency behavior. Implement fixed destinations in
platform/integrations.mjs; do not introduce a generic “call any URL with any token” route. - For a new BA product, copy the NextJS starter and register its own slug/origin, OIDC client, database credentials, service keys, product grants and process operations. Creating a NextJS folder alone does not grant platform access.
- Upload this project’s platform change set from the local parent folder:
python protocol-bpmn/tools/upload-platform.py
On the VM, use all three Compose files:
cd /opt/protocol-bpmn sudo docker compose -f compose.yaml -f compose.central.yaml -f compose.platform.yaml build sudo docker compose -f compose.yaml -f compose.central.yaml -f compose.platform.yaml up -d python3 tools/setup-platform.py model python3 tools/verify-platform.py
Use --restart on the verification script only when deliberately testing persistence outside manual testing. It restarts this Protocol engine and shared auth/task/integration services. The suite creates synthetic records, temporarily revokes/restores the pilot author’s Protocol grant and signs the test author out across products.
Earlier bare docker compose up and legacy bootstrap/test commands omit the platform overlay or rely on the now-disabled dev login. Use the commands above for this deployment.
What was tested
20 automated checks passed, including live OIDC/PKCE login, SSO, host-bound sessions, disabled legacy login, business/task permissions, CSRF and Origin checks, actor spoofing, attachment handling, duplicate-submit protection, real delegate callbacks, review/sign/substitute rules, token refresh, product grant revocation, service caller restrictions, database isolation and restart persistence. The independent NextJS starter completed its own real BPMN review.
The browser walkthrough also passed: a new Protocol was created, submitted, approved and signed through the exact screens shown above. Its final business and engine states were checked in the UI.
Automated test evidence · Manual walkthrough evidence
This remains a single-VM development platform. Central authorization currently governs product access; Protocol owns record-specific permissions. Enterprise Keycloak, a permission-management UI, arbitrary custom task-form hosting and high availability are not implemented. The older comparison environments remain separate.


