Overview#
The Representative Portal provides elected members, councillors, and their constituency staff with a dedicated, tenant-branded digital workspace for managing constituent queries, meeting participation, and official motions. Accessible through a secure sign-in gate, the portal separates elected member workflows from the general public-facing surfaces while maintaining a consistent branded experience for the organisation. Members can file and track constituency representations, access meeting agendas and minutes, record votes, and manage their case correspondence, all in a single application that is deployed and accessible globally.
The portal is designed for organisations that need to give elected representatives access to structured casework and governance workflows without granting them access to internal operational systems or staff-facing tools.
Key Features#
- Secure Authentication Gate: All portal pages require authentication; unauthenticated visitors see a branded sign-in prompt and are redirected to the portal login page, with the original destination preserved so members return directly to the page they were trying to reach after signing in
- Tenant-Branded Shell: The portal displays the organisation's logo, name, and tagline in the navigation header and footer, presenting a consistently branded experience rather than a generic platform interface
- Constituency Query Management: Members can view, filter, and respond to constituent queries filed through the citizen portal, track correspondence history, and manage case status through a structured query list and detail view
- Meeting Participation: Meeting detail pages show full agenda, attendance records, voting outcomes on individual agenda items, and associated documents, giving members a complete record of each meeting in one place
- Motions Register: A dedicated motions view presents the full register of tabled motions with their current status, supporting text, and voting record, enabling members to review the legislative and governance record of their term
- Multi-Locale Support: Portal pages are served under locale-prefixed routes, supporting multiple language configurations and enabling organisations with bilingual or multilingual obligations to serve members in their preferred language
- Global Edge Deployment: The portal is deployed as a Cloudflare Worker, serving portal pages from the network edge closest to each member, reducing latency for members accessing the portal from regional or rural locations
Use Cases#
Constituency Casework#
A councillor receives notification that a constituent has submitted a query about a planning application through the citizen portal. They sign in to the representative portal, open the query, review the constituent's submission and attachments, and submit a formal written response that is routed back to the constituent and recorded on the case, all without needing access to the internal staff operational system.
Meeting Preparation#
Before a council meeting, a member opens the meeting detail page to review the agenda, read the associated briefing documents, and see what votes were recorded at the previous meeting. After the meeting, they access the minutes and the voting record for their own review and constituent reporting.
Motions Register Review#
A member preparing a question for the chamber reviews the motions register to check the current status of several motions tabled during the current term, including the full supporting text and the recorded vote breakdown.
Bilingual Portal Access#
An organisation with Welsh language obligations configures the portal for both English and Welsh. Members who have set Welsh as their preferred language access the portal through the /cy/ locale route and see all navigational and interface text in Welsh.
Multi-Organisation Deployment#
A shared services arrangement deploys a single platform instance for several local authorities. Each authority has its own tenant configuration with its own branding, member database, and portal key. Members from each authority see only their own organisation's portal, queries, and meetings.
How It Works#
Integration#
The Representative Portal authenticates using the same auth service as all other platform portals, with representative-role validation ensuring only members and their authorised staff can access the portal surfaces. Portal branding and configuration are loaded from the tenant context API on each page render, enabling branding changes to take effect immediately without redeployment. The query, meeting, and motions data is served through the platform's GraphQL API, scoped to the tenant and the representative's permitted access level. Notifications of new constituent queries are delivered through the platform's notification service to the member's registered contact preferences.
Open Standards#
- GraphQL (June 2018 Specification): All constituency query, meeting, motions, and dashboard data is queried and mutated through a typed GraphQL API, enabling clients to request precisely the fields they need and receive strongly-typed responses.
- JSON Web Token (RFC 7519): Portal authentication relies on RS256-signed JWTs carrying standard claims (sub, aud, iss, exp, iat) to assert the member's identity and tenant scope; symmetric HS256 tokens are explicitly rejected.
- JSON Web Key Set (RFC 7517): The middleware fetches the auth service's JWKS endpoint to resolve public key material for RS256 and EdDSA token verification, with a cached stale-serve fallback for resilience.
- OAuth 2.0 (RFC 6749): Access to portal surfaces is gated by bearer token authorisation, and role-based scopes on the token determine whether a caller holds a valid representative role before any data is returned.
- BCP 47 / IETF Language Tags (RFC 5646): Locale codes such as
en,en-US, andcyare used to route portal pages under locale-prefixed paths and to store per-locale content fields (bios, meeting titles) that satisfy bilingual obligations. - PDF (ISO 32000): Constituency response letters are generated as PDF documents server-side and served with the
application/pdfMIME type, providing an interoperable, print-ready format for official correspondence. - JSON (RFC 8259): Structured data fields including meeting agendas, attendee lists, attachments, and member metadata are stored and exchanged as JSON, which is also the wire format for the GraphQL transport layer.
Last Reviewed: 2026-04-14 Last Updated: 2026-04-14