Current progress

The consolidation has reached UAT. Controlled accounts verified Google login through ZITADEL, Brevo recovery delivery and login with the reset password. Internal identity and existing access were preserved. This updates the 7 October report, which described preparation for the initial rollout.

Go/PostgreSQL continues to decide access on the server. ZITADEL supplies external identity; CRM is the commercial authority for packages and licenses. Decisions combine the current license, kitchen membership and action permissions. ADM, CRM, FIC GARA and Team Competition retain distinct, explicit policies.

Verified behavior

  • Product publication: publishing synthetic package A in UAT changed only its contracts. A draft granted no access; withdrawing a module blocked reads and writes with an already-open session.
  • License lifecycle: suspension, renewal without lifting suspension, reactivation and revocation were exercised. Generic editing could not reactivate a revoked license. Temporary commercial test access was closed.
  • License country: on 15 October, one test code issued for Italy was activated and renewed in an isolated kitchen, preserving IT in CRM and Kulinaryos without a manual repair or another code. The license was finally revoked, open-session denial confirmed and temporary access closed.
  • Catalog: 4,235 ingredient copies from the existing standard Kulinaryos catalog were imported only into an isolated test kitchen. This work did not author new ingredient content. Import produced no duplicates and preserved the source catalog and other kitchens. Reopening the screen retained the archive without a second import request.

These authenticated checks were obtained in dated October stages, with each deployed version recorded. The 16 October read-only check found the UAT API, app and CRM healthy and synchronized; it does not replace acceptance of each new release.

Planned stage on 16 October: kitchen collaborators

The archive belongs to the kitchen and should be shared with collaborators according to their assigned roles. Multiuser admission protection from backend #328 is deployed in UAT through infra #774, with immutable image 2607957 and a healthy, synchronized backend. It passed 1,692 local and CI tests, with no failures or skipped tests.

The implemented rule counts the owner and collaborators within the license's total users: two users means the owner plus one collaborator. This interpretation remains explicit and subject to commercial confirmation. Protection covers new admissions, reattachments and concurrent requests for the final seat while preserving existing access. It does not introduce an invitation flow for someone who already owns another Kulinaryos account.

With deployment confirmed, the remaining browser journey uses two controlled accounts: admission, shared archive, permissions, capacity and removal of access with an open session. At initial preparation, the synthetic kitchen had only one seat and the Ingredients module; the test must prepare and then restore its capacity and setup rights without changing customers.

Update — 17 October

The current UAT observation confirmed API c52f56e, app 1c4d158 and CRM 86adaa8, healthy and synchronized. The complete current backend suite passed 1,697 tests on isolated PostgreSQL, with no failures or skipped tests.

In the authorized rehearsal, publishing Anagrafe/Command in the synthetic package opened owner setup and updated its two license projections while keeping kitchen C revoked and the expected user limits. The rehearsal found duplicate role profiles during collaborator preparation; app correction #520 has been merged and is awaiting image promotion to UAT.

The window was closed and verified: package, map and temporary rights restored, catalog and customers preserved, and no collaborator account created. Synthetic records were retained inactive or without permissions for audit. The two-account journey still needs completion after promotion of the correction. The updated technical roadmap records this remaining work.

Update — 18 October

The role-creation correction is now in UAT. The ordinary test collaborator was created, signed in with the password chosen by the user and read the shared kitchen's ingredients, which are copies of Kulinaryos's existing standard catalog. No ADM or CRM powers were granted.

The first sign-in encountered a separate UAT entry restriction: the test address had not been allowed. Only that account was added within the authorized test window, with removal included in cleanup. There was no need to reset the password or open the environment to other addresses.

The next gap is the detach/reattach screen for ordinary kitchen members, currently shown only for teams. App #526 exposes the existing flow while keeping invitations and coach powers exclusive to teams. Type checking, the build and 1,428 local tests passed, including 11 component tests. Image promotion and live UAT acceptance of access removal, reattachment and seat limits are still pending.

The current backend's complete suite passed 1,703 tests on isolated PostgreSQL, with no failures or skips. The updated roadmap and procedure distinguish these local checks from observed UAT behavior. Full acceptance and PROD promotion remain pending.

Update — 20 October

App #526 reached UAT through infra #809. Owners can now detach and reattach ordinary kitchen collaborators through the member screen, with capacity decisions remaining on the server.

The controlled window reused the existing ordinary test account and verified:

  • With the sole seat occupied by the owner, reattachment was refused without changing the collaborator's membership.
  • With two seats, the same collaborator was reattached and read the shared archive: copies of Kulinaryos's existing standard catalog, without ADM or CRM powers.
  • After the owner detached the collaborator, a fresh read was denied even with the session still open.
  • Reattachment restored reading in that same session, without another login.

The window ended before its deadline with verified cleanup: the temporary entry permit was removed, collaborator sessions revoked, and the original package, rights, profiles and capacity restored. The 4,235 ingredient copies and protected data were preserved. No new account or password was created in this window.

This backend version's complete suite passed 1,709 tests on isolated PostgreSQL with no failures or skips; app checking, build and 1,443 tests passed, including 11 member-screen cases. These are local results, separate from the observed UAT journey.

At the end of that first window, a real role-denied write request and cross-kitchen isolation still needed live checks. The continuation below records completion of both. Counting the owner within capacity remains subject to commercial confirmation. The updated technical record details outcomes, cleanup and remaining work; this stage does not authorize PROD promotion.

20 October continuation: server protections confirmed

A new authorized window completed the two remaining UAT checks with the ordinary collaborator, without ADM or CRM powers:

  • Writing outside the role: an owner screen left open after a normal account switch attempted to save a disposable test ingredient. All four automatic attempts received HTTP 403; the stored database row remained identical.
  • Another kitchen: selecting controlled kitchen C received HTTP 403. The app returned to allowed kitchen A and reading continued on the same session without another login. No other-kitchen data was observed; its license remained revoked.

The disposable ingredient was created only for this test and removed afterward. It was separate from the 4,235 copies of the existing Kulinaryos standard catalog, which were preserved. The window ended at 23:32 Brasilia time, before its deadline: temporary access removed, session revoked, collaborator detached, and original rights, profiles and capacity restored. All 21 checked protected-data groups matched their opening state.

The current UAT API, 94bc3d6, passed 1,722 tests on isolated PostgreSQL, with no failures or skips. The technical completion record contains evidence and limits. This controlled collaborator journey is complete within its scope; commercial owner-seat counting, invitations and historical profiles still require review. PROD remains pending.

CI also identified a required fix in Go's TLS library. The Go 1.27.3 update was prepared in the same PR and passed all 1,722 tests again and the scanner with no reachable vulnerabilities. It still needs merge and promotion of a new UAT image; the browser checks above exercised the current image.

Remaining work

Session continuity on social.kulinaryos.com, verification of sito.kulinaryos.com offers against CRM and reviewed legacy-data reconciliation remain open. Custom logos and vocabulary do not grant modules or administrative powers.

Full acceptance and coordinated PROD promotion remain pending. Delivery continues through immutable versions, UAT evidence and reviewed changes while preserving customer accounts and contracts.