Skip to content

docs(inji-mobile): rewrite workflow customization for Inji 1.x#13

Open
abhip2565 wants to merge 7 commits into
inji:masterfrom
tw-mosip:docs/inji-mobile-workflow-customization-1.x
Open

docs(inji-mobile): rewrite workflow customization for Inji 1.x#13
abhip2565 wants to merge 7 commits into
inji:masterfrom
tw-mosip:docs/inji-mobile-workflow-customization-1.x

Conversation

@abhip2565

@abhip2565 abhip2565 commented Jul 8, 2026

Copy link
Copy Markdown

What changed

  • Updated to the modular XState architecture (per-feature folders, split into Model / Machine / Actions / Guards / Services / Selectors) instead of the old flat, partly outdated machine list.
  • Documented how machines are wired: app.ts root, the factory-and-spawn pattern, serviceRefs/AppServices, and parent↔child/broadcast/storage communication.
  • Refreshed the machine reference and grouped it by capability (bootstrap, OpenID4VCI issuance, VC lifecycle, OpenID4VP online sharing, BLE/Tuvali offline sharing, QR login, face auth, backup & restore).
  • Added practical "how to customize" guidance: changing a flow, keeping typegen in sync, adding a new machine, visualizing, and testing.
  • Added cross-links to the architecture, components, configuration, credential-provider, and integration-guide pages.

Verified machine names, folder layout, and wiring against the inji-wallet master codebase.

Summary by CodeRabbit

  • Documentation
    • Expanded and reorganized the wallet customization guides for workflows, configuration, locales, and UI theming.
    • Added clearer step-by-step instructions for customizing app behavior, adding languages, and updating themes.
    • Improved coverage of configuration sources, supported languages, theme assets, and fallback behavior for credential display.

abhip2565 added 4 commits July 8, 2026 14:28
Rework the Inji Wallet workflow customization page to reflect the release 1.x modular XState architecture: root/service-actor wiring, the per-feature file convention (Model/Machine/Actions/Guards/Services/Selectors), an up-to-date machine reference grouped by capability, and practical guidance for extending or adding machines.

Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
Add a concise 'Flows covered' list (2-3 bullets) to the important machines - app, Issuers, VCMeta, VCItem, openID4VP, BLE scan/request, QrLogin, backup and restore - so consumers can see the concrete journeys each one drives at a glance.

Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
Replace U+2011 non-breaking hyphens with plain ASCII hyphens for on-site search/copy consistency, and point the typegen note at a stable section heading anchor instead of a numbered-heading anchor that GitBook may slug unpredictably.

Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
…headers

Promote capability groups to H2 and machine names to plain-text H3 (previously H4 wrapped in inline code, which rendered smaller than the bold 'Flows covered' labels beneath them). Machine headers are now plain text, consistent with the rest of the docs.

Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR rewrites Inji Mobile customization documentation across workflow, configuration, locale, and UI customization pages, plus updates README links to relative paths. It replaces brief bullet-style overviews with structured guides detailing XState machine architecture, configuration properties, i18n setup, and theming.

Changes

Customization overview docs

Layer / File(s) Summary
Overview and workflow guide
README.md, workflow-customization.md
README customization links are made relative; workflow doc rewritten to describe multi-actor XState architecture, factory/spawn pattern, machine anatomy, expanded machine reference (bootstrap, issuers, VC lifecycle, OpenID4VP, BLE sharing, QR login, face auth, backup/restore), and a numbered customization procedure.
Configuration reference
configuration.md
Configuration doc rewritten to describe inji-default.properties sourcing via Mimoto's /v1/mimoto/allProperties, an expanded mobile properties table, a new related Mimoto configuration table, and a build-time variables table with sync notes.
Locale support guide
locale-customization.md
Locale doc rewritten to document i18next/expo-localization usage, a supported-languages table, a new-language checklist with example, and issuer metadata language-code fallback handling via iso-639-3.
UI customization guide
ui-customization.md
UI doc rewritten to cover theme selection via APPLICATION_THEME, logo/icon asset wiring, tab icon customization, a theme keys table with example object, and OpenID4VCI-driven VC card rendering with fallback defaults.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related issues

Poem

A rabbit hops through docs anew,
Machines and themes now clear in view. 🐇
Configs, locales, all lined in rows,
Workflow paths that everyone knows.
Hop, hop, hooray — the guide book grows! 📚✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Title clearly matches the main change: a documentation rewrite of workflow customization for Inji Mobile 1.x.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md`:
- Around line 19-34: The opening fenced diagram block in the workflow
customization docs is missing a language label, which causes the MD040 lint
issue. Update the fence on the diagram snippet to use text (or another
appropriate language tag) so the block is explicitly labeled and renders
consistently; this applies to the diagram near the app.ts and machines/*
references.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 069fe2b5-56df-485a-8909-46ac34716bc3

📥 Commits

Reviewing files that changed from the base of the PR and between b2ccd39 and 69be23c.

📒 Files selected for processing (1)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
inji-wallet/inji-mobile/technical-overview/customization-overview/credential_providers.md (1)

183-204: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Avoid delete-then-recreate for the keystore secret.

This creates a gap where Mimoto may temporarily lose its keystore. Prefer an in-place update (kubectl apply / server-side apply) so the secret never disappears between commands.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/credential_providers.md`
around lines 183 - 204, The Step 5 secret replacement flow in the keystore
mounting section currently deletes and recreates the mimotooidc secret, which
can briefly remove the keystore. Update this guidance to use an in-place secret
update instead, such as kubectl apply or server-side apply, and keep the
existing backup step intact while replacing only the delete/create commands in
the Mimoto keystore instructions.
inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md (1)

55-67: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Tighten the MIMOTO_HOST sync note.

MIMOTO_HOST only selects the Mimoto base URL; the issuer/token endpoints themselves live in Mimoto’s server-side config. As written, this can send deployers to edit the wrong setting.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md`
around lines 55 - 67, The sync note for MIMOTO_HOST should be tightened because
it implies the build variable controls issuer/token endpoints directly. Update
the wording in configuration.md near the App Build-Time Configuration section so
it clearly says MIMOTO_HOST only sets the wallet’s Mimoto base URL, while the
issuer and token endpoints are configured in Mimoto’s server-side config; keep
the reference to mimoto-issuers-config.json only as the place where those
endpoints must match the selected base URL.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md`:
- Around line 55-67: The sync note for MIMOTO_HOST should be tightened because
it implies the build variable controls issuer/token endpoints directly. Update
the wording in configuration.md near the App Build-Time Configuration section so
it clearly says MIMOTO_HOST only sets the wallet’s Mimoto base URL, while the
issuer and token endpoints are configured in Mimoto’s server-side config; keep
the reference to mimoto-issuers-config.json only as the place where those
endpoints must match the selected base URL.

In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/credential_providers.md`:
- Around line 183-204: The Step 5 secret replacement flow in the keystore
mounting section currently deletes and recreates the mimotooidc secret, which
can briefly remove the keystore. Update this guidance to use an in-place secret
update instead, such as kubectl apply or server-side apply, and keep the
existing backup step intact while replacing only the delete/create commands in
the Mimoto keystore instructions.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 61c9f687-5845-4ffc-b75c-38c74210d5ef

📥 Commits

Reviewing files that changed from the base of the PR and between 69be23c and 94b3b0c.

📒 Files selected for processing (6)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/README.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/credential_providers.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/locale-customization.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/ui-customization.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md
✅ Files skipped from review due to trivial changes (1)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md

Comment thread inji-wallet/inji-mobile/technical-overview/customization-overview/README.md Outdated
abhip2565 added 3 commits July 9, 2026 11:10
Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
Signed-off-by: abhip2565 <paul.apaul.abhishek.ap@gmail.com>
@abhip2565 abhip2565 force-pushed the docs/inji-mobile-workflow-customization-1.x branch from 0bce336 to d878724 Compare July 9, 2026 05:41

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/ui-customization.md`:
- Around line 10-26: Clarify in the theme selection docs that APPLICATION_THEME
in components/ui/styleUtils.ts is a build-time value from react-native-dotenv,
not a runtime switch. Update the customization overview text near the Theme
selector and new-theme steps to state that changing APPLICATION_THEME requires
rebuilding/reinstalling the app, while keeping the existing references to
styleUtils.ts, themes.test.ts, and app.config.ts intact for locating the related
theme setup.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 89005ac4-270b-46d9-98fc-14ec94580b43

📥 Commits

Reviewing files that changed from the base of the PR and between 94b3b0c and d878724.

📒 Files selected for processing (5)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/README.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/locale-customization.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/ui-customization.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md
✅ Files skipped from review due to trivial changes (3)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/README.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/locale-customization.md
  • inji-wallet/inji-mobile/technical-overview/customization-overview/configuration.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • inji-wallet/inji-mobile/technical-overview/customization-overview/workflow-customization.md

Comment on lines +10 to +26
The active theme is selected in `components/ui/styleUtils.ts` from the `APPLICATION_THEME` environment variable:

```
Example:-
components/ui/styleUtils.ts
```ts
import {DefaultTheme} from './themes/DefaultTheme';
import {PurpleTheme} from './themes/PurpleTheme';
import {APPLICATION_THEME} from 'react-native-dotenv';

import { PurpleTheme } from './PurpleTheme';
export const Theme = PurpleTheme;
export const Theme =
APPLICATION_THEME?.toLowerCase() === 'purple' ? PurpleTheme : DefaultTheme;
```

### App Logo and Background Images
To add a new theme:

To change app logo on homescreen
1. Add a new theme file under `components/ui/themes`.
2. Keep the exported object shape compatible with `DefaultTheme` and `PurpleTheme`; `components/ui/themes/themes.test.ts` validates required properties.
3. Import the new theme in `components/ui/styleUtils.ts` and extend the `APPLICATION_THEME` selector.
4. If the splash screen should change with the theme, update `app.config.ts` as well.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n "APPLICATION_THEME|react-native-dotenv|styleUtils" inji-wallet/inji-mobile

Repository: inji/documentation

Length of output: 1311


Clarify that APPLICATION_THEME is build-time, not live-switched. react-native-dotenv values are bundled into the app, so changing this setting requires rebuilding/reinstalling the app.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@inji-wallet/inji-mobile/technical-overview/customization-overview/ui-customization.md`
around lines 10 - 26, Clarify in the theme selection docs that APPLICATION_THEME
in components/ui/styleUtils.ts is a build-time value from react-native-dotenv,
not a runtime switch. Update the customization overview text near the Theme
selector and new-theme steps to state that changing APPLICATION_THEME requires
rebuilding/reinstalling the app, while keeping the existing references to
styleUtils.ts, themes.test.ts, and app.config.ts intact for locating the related
theme setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant