A public portal is an intake boundary
The KayanOS public portal lets a citizen discover and start approved public forms. It is not an external view of the internal KayanOS workspace, a public entity browser, or a shortcut around member roles. A public participant can work with their own permitted public session; they cannot use the portal to browse other citizens’ requests, internal queues, dashboards, documents, or staff records. Use the portal for a Citizen Service Request that starts an approved intake process. Keep internal review, inspection, decision, member-only fields, and administration behind the appropriate authenticated KayanOS permissions.
What makes a form eligible
A form appears in the public portal only when all of these conditions are true:
If any condition fails, the portal treats the form as unavailable. Do not try to preserve access through an old copied link; fix the intended publication/availability condition or communicate the closure clearly.
Design the citizen journey before publishing
Write the complete journey from the citizen’s point of view:- The citizen finds Citizen Service Request under a clear topic/folder such as “Service requests.”
- The portal shows a localized title, concise description, optional cover image, and icon that explain what the form is for and who may use it.
- The citizen learns whether an account is required before beginning—not after entering a long set of values.
- The citizen starts one public session, completes the fields, and receives only the permitted reference/status information.
- Internal Registry, Field Inspection, and Decision teams continue the work in authenticated KayanOS surfaces.
- If the form closes, reaches its cap, or requires an account, the portal gives a clear next channel rather than leaving the citizen to retry blindly.
Configure portal information architecture
Folders, order, and discoverability
Publicly eligible forms can be organized into folders. The portal retrieves visible folders that are used by eligible forms and shows forms in their configured menu order, with creation time as a later ordering fallback. Use folders for plain-language services, not internal organizational jargon. Suggested public structure:
Set one deliberate menu order and test search. Portal search matches visible form titles; it does not make a form eligible, search internal records, or bypass a folder/publication boundary.
Identity, theme, and language
The portal can use the organization’s display name, short description, logo, configured portal logo variants, and cover image. It also reads active organization languages and the organization default language, while the visitor can choose a supported portal language where available. Keep English and Arabic names, descriptions, labels, and help text equivalent in meaning. Review Arabic direction, line wrapping, dates, numerals, and the actual visible form content—not only the portal header. Use a neutral public-service visual identity. Do not use a screenshot, cover image, or form title that reveals live personal data, a private service reference, a token, or an internal team queue.Account-required versus public participant flow
Every portal visitor is handled as a public participant, but a form can require a registered public account before it starts. The public sign-in/registration experience supports email and phone-based identity flows where the organization has configured and verified them. Do not hard-code a country-code assumption in instructions: confirm the organization’s phone/localization configuration and test it for the intended audience.
Requiring an account does not give that citizen member permissions. It only changes the public participant condition for the form.
Where the account flow asks for a verification code, use the six-digit code from the configured email or phone channel within 10 minutes. A new code cannot be requested more than once per 60 seconds, and repeated requests are limited. Five wrong verification attempts lock that verification flow for 15 minutes; wait for the lock to end instead of trying alternate identities or asking staff to bypass it.
Password recovery deliberately returns the same request acknowledgement whether or not an account exists. After a valid code, finish the reset within 15 minutes: the reset continuation is single-use. A successful password reset ends the account’s existing sign-in sessions, so the participant must sign in again with the new password. Staff must not reveal whether an email address or phone number has an account, disclose a verification code, or reuse an internal member session to complete a public participant’s recovery.
Publish a controlled Citizen Service Request
- Build and test the regular form in a non-production organization. Keep public-facing fields minimal; move internal review fields to authenticated steps.
- Publish the intended form version. Confirm the form title, description, field labels, validation, Arabic/English text, and error messages are ready for citizens.
- In public settings, enable the form and decide whether an account is required, whether an overall public submission limit is appropriate, and whether an end date is needed.
- Place the form in the correct folder, set its menu order, icon, and cover image. Confirm search finds the title without relying on internal terms.
- Configure/verify the organization’s portal name, logo/cover, active languages, and public participant account flows.
- Test the portal in a clean browser session as a public participant. Start a request, save/submit it according to the form design, then verify the public view exposes only its own permitted session information.
- Test an account-required denial, an expired form, a disabled form, and a cap-reached form using controlled data. Record the citizen-facing explanation and approved alternative channel for each.
- Have an internal reviewer open the resulting session through normal member permissions and confirm no internal data became public.
Public session boundary
When a public participant starts an eligible form, KayanOS creates a session bound to that participant. Recent portal activity is limited to that participant’s own recent public sessions. A public participant cannot open a session merely by guessing or receiving someone else’s internal session ID. This boundary is important for follow-up design:- Use the returned/reference information that the form is designed to share.
- Do not send internal session IDs, signed file URLs, or staff-only links in a public message.
- Do not add a form expression or hidden field that looks up and renders data from another citizen’s request.
- If a citizen needs a status update, design and test a released, permission-safe public response rather than exposing the internal record.
Availability limits and closure behaviour
Do not promise automatic reopening, backlog transfer, notification, or external delivery unless those outcomes are separately configured and verified in released KayanOS capabilities.

