GKONE · GK One Identity

Company
Client Project
Period
2021 – Present (In progress)
Location
Jamaica
Category
Client

Summary

GKONE is the production banking platform of a Jamaican bank. Since 2021 I have shipped features across its mobile app, web apps, microservices and identity, first through The Bridge Social and then directly through Accentio Studios after the bank chose to retain me. My largest piece is GK One Identity (GKID): the bank's own OAuth 2.1 / OpenID Connect layer in front of Microsoft Entra External ID. It gives every GK One app and approved partner one customer account, single sign-on, consent and revocable grants. I built its React web front end, its admin screens, its .NET 10 authorization server and its mobile entry points: the Entra ID sign-in and the GK ID app launcher.

Highlights

  • GKID web login224 of the repo's 229 commits; 20 auth steps, 96 unit test files with 1,122 cases (Vitest + Testing Library) and 6 Playwright e2e specs

    Built the GKID web login in Next.js 15 (App Router) + React 19 + TypeScript, with Zustand, react-hook-form and Zod over Microsoft Entra's native auth APIs: sign-in, sign-up, password reset, email OTP, consent, account picker, silent SSO and session transfer from the mobile app. Moved it from a Vite single-page app to Next.js.

  • Tokens kept off the browserNo tokens in browser storage; one Docker image promoted from Dev to Prod, with Azure App Configuration loaded at boot

    Kept every token off the browser: 13 Next.js route handlers work as a backend-for-frontend, the session lives in an HttpOnly __Host- cookie, and same-origin and Fetch Metadata checks block cross-site requests.

  • Self-service account portal4 account pages, shipped through Azure Pipelines (Dev, QA, UAT, Prod) with Docker and SonarQube

    Built the self-service account portal in React: customers see the apps they connected, revoke them, end sessions per browser or everywhere, and review their registered devices.

  • GK Identity admin sectionBank staff register a new partner app from one wizard; Alvaro wrote all 5,272 lines of the section

    Built the GK Identity section of the bank's admin portal in Next.js + React + MUI: a wizard that provisions the Entra app and its service principal in 6 stages and retries from the failed one, client secret generation and revocation, scopes, consent policy, per-app single sign-on and API resources.

  • Mobile app content adminAbout 6,700 lines built end to end; top contributor to the portal with about 60% of its code

    Built the admin screens that run the mobile app's home: service menu items and promotions per tenant, with copy or move between tenants and bulk disable and delete.

  • OAuth 2.1 / OIDC authorization server3 controllers with 56 endpoints (OAuth2, Entra admin, identity conflicts), 108 xUnit test files with 1,346 cases, and 155 of the 156 commits on the OAuth code

    Wrote the GK One Identity authorization server in .NET 10 (/oauth2/v1): authorization code with PKCE S256, refresh-token rotation with reuse detection, RS256 JWKS with key rotation, discovery, userinfo, introspection, resource indicators (RFC 8707) and RP-initiated logout. Hardened it with 8 rate-limit policies and refresh and session tokens stored as SHA-256 hashes.

  • End-to-end GK ID launcherOne feature shipped across the Flutter app, the .NET IAM and the Next.js login

    Built the GK ID app launcher end to end: the Flutter app mints a one-time session-transfer code, the IAM redeems it and the web login opens the target app signed in, with no second sign-in.

  • B2C to Entra migrationEnd-to-end identity migration across mobile, web and partner integrations

    Migrated customer identity from Azure AD B2C to Microsoft Entra External ID across the Flutter app, the bank's web apps and third-party integrations: each account moves at its next sign-in with JWKS validation, and a batch endpoint moves the rest.

  • Identity conflict resolutionDetection, merge, admin screens and the mobile flow built end to end

    Built identity conflict resolution: the system detects duplicated customers and routes each case through maker-checker approval in the admin portal. A merge orchestrator with pre-flight checks, a Cosmos DB snapshot and rollback runs the approved merge from an Azure Service Bus queue and kicks the old sessions.

  • Diátaxis documentation26 documents, 62 of 62 commits

    Documented GK One Identity in 26 documents organized by Diátaxis: tutorials, how-to guides, reference and explanation.

  • Entra ID sign-in in Flutter1,600+ commits since 2021; wrote the 51-file Entra ID module in full, 82% of Home V2 and 75% of account management

    Built the Flutter app's Microsoft Entra ID sign-in and sign-up (biometric enablement, social login behind a feature flag, root and jailbreak detection) and most of Home V2, account management, phone top-up and transaction history, plus API changes in the core, remittance and wallet microservices.

Stack

  • React
  • Next.js
  • TypeScript
  • Zustand
  • React Hook Form
  • Zod
  • Tailwind
  • MUI
  • Vitest
  • Playwright
  • .NET 10
  • C#
  • OAuth 2.1
  • OpenID Connect
  • PKCE
  • Microsoft Entra External ID
  • Azure AD B2C
  • MassTransit
  • Azure Service Bus
  • Cosmos DB
  • SQL Server
  • Azure API Management
  • Azure App Configuration
  • Azure Pipelines
  • Docker
  • Flutter
  • Firebase
  • Fastlane
BUILT FOR
  • Screen readers
  • LLM agents
  • ATS parsers
  • Responsive
  • Fast load
alvaro-bash --project gkone --locale enEXIT 0v1.0.0· — · São Paulo · Brasil
OPEN TERMINAL