chore(samples): fix sample-app convention gaps - #597
Conversation
Adds uipath.json.example, a .gitignore that ignores .uipath/uipath.json, and a favicon to the five coded-action-apps. Also gives data-fabric-app-angular's .gitignore a .uipath entry and renames document-validation-app's example config to the expected uipath.json.example. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
process-app-v0, process-app-v1 and conversational-agent-app now use the @uipath/coded-apps-dev vite plugin: base './', a uipath.json.example, and config sourced from injected <meta name="uipath:*"> tags via a config-less new UiPath() instead of import.meta.env. App-specific env (e.g. ENTITY_ID) is untouched. Config-less new UiPath() needs SDK >= 1.4, so the process apps' SDK dep was bumped to ^1.3.1 (resolves 1.5.3); that surfaced one API-drift fix (getExecutionHistory now takes folderKey). Also fixes a pre-existing Tailwind v4 / PostCSS misconfig that stopped both process apps building. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
| # Local UiPath OAuth config (tenant-specific) — copy uipath.json.example | ||
| # to uipath.json and fill in your values. The committed sample only ships | ||
| # the .example template, not real tenant info. | ||
| uipath.json |
There was a problem hiding this comment.
This .gitignore entry won't protect the uipath.json that's already tracked in this repo. Three action apps have committed uipath.json files that remain tracked regardless of .gitignore:
samples/coded-action-apps/action-app-with-data-fabric-entity/uipath.jsonsamples/coded-action-apps/action-app-with-file-attachment-document/uipath.jsonsamples/coded-action-apps/action-app-with-storage-bucket-document/uipath.json
The .gitignore comment on lines 12–14 ("The committed sample only ships the .example template") is also incorrect for these three apps — they still have committed uipath.json files alongside the new uipath.json.example.
When a developer fills in one of those tracked files with real credentials, git status will show it as modified (not ignored), making it easy to accidentally commit secrets.
Fix: untrack them so .gitignore can take effect:
git rm --cached samples/coded-action-apps/action-app-with-data-fabric-entity/uipath.json
git rm --cached samples/coded-action-apps/action-app-with-file-attachment-document/uipath.json
git rm --cached samples/coded-action-apps/action-app-with-storage-bucket-document/uipath.jsonThe migration to config-less new UiPath() orphaned some env config. Drops conversational-agent-app's unused .env.example and its VITE_UIPATH_* type block; removes the dead CLIENT_ID/SCOPE lines from the process apps' .env.example (keeping the ORG/TENANT/BASE_URL/ENTITY_ID vars still used for the Data Fabric link). Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Review findingsOne issue found during this run: Tracked Everything else looks good: the coded-apps-dev migration, Tailwind v4 PostCSS fix, SDK bump, |
Captured against a live tenant: the Data Fabric Explorer browsing an entity's records and a choice set. Adds screenshots/preview.gif and a Preview section to the README. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
|
✅ No issues found. Checked for bugs and CLAUDE.md compliance. |
Captured against a live tenant: process-app-v0/v1 browsing Maestro processes and a faulted instance's execution detail, and conversational-agent-app picking an agent and viewing a chat thread. Each gets screenshots/preview.gif and a Preview section. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Committing uipath.json is allowed, so drop it (and its stale comment) from the .gitignore files added during this change. .uipath stays ignored. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
The process apps built the Data Fabric entity link from VITE_UIPATH_ORG_NAME /TENANT_NAME/BASE_URL. Those now come from uipath.json, so read them off sdk.config instead and drop the three vars from .env.example. Only the app-specific VITE_UIPATH_ENTITY_ID remains in env. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
| node_modules | ||
| dist | ||
| dist-ssr | ||
| .uipath |
There was a problem hiding this comment.
The six new .gitignore files in this PR (action-app-with-document, action-app-with-image, action-app-with-file-attachment-document, action-app-with-data-fabric-entity, action-app-with-storage-bucket-document, and conversational-agent-app) are all missing uipath.json as an ignored pattern.
data-fabric-app-angular/.gitignore already has this entry — these should match. Without the entry:
- Developers who copy
uipath.json.example→uipath.jsonand fill in real credentials will see the file as untracked (not ignored), making an accidentalgit add .easy. - For the three action apps that still have
uipath.jsontracked (see the open thread onaction-app-with-data-fabric-entity/.gitignore), runninggit rm --cachedwould untrack them but they'd immediately show back as untracked — not ignored — because there's no.gitignoreentry.
Same one-liner fix across all six files:
| .uipath | |
| .uipath | |
| uipath.json |
Review findingsMissing |
| dist-ssr | ||
| .uipath |
There was a problem hiding this comment.
uipath.json is missing from this ignore list — only .uipath (the runtime directory) is ignored. A developer who copies uipath.json.example → uipath.json and fills in credentials will see the file as untracked in git status, not silently ignored, making an accidental credential commit easy.
The data-fabric-app-angular/.gitignore already has this right; the same pattern should be used here (and in the five action-app gitignores, all using the same template):
| dist-ssr | |
| .uipath | |
| dist-ssr | |
| # Tenant-specific credentials — copy uipath.json.example instead | |
| uipath.json | |
| .uipath |
Review findingsOne new issue found this run:
The existing open thread about tracked |
Preview gif from a screen recording of the validation inbox: task list, extracted fields, and the highlighted document text view. Cropped to the app viewport, sped up, and downscaled. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Review findingsOne new issue found this run: process-app gitignores missing uipath.json — both process-app-v0 and process-app-v1 have The three open threads from prior runs (tracked uipath.json files needing git rm --cached; missing uipath.json in the six new gitignores) remain open and unaddressed. |
Replaces every sample-app favicon with docs/assets/favicon.png (the current UiPath icon). document-validation-app switches from favicon.svg to the png and its index.html <link> is updated to match. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
|
Review findingsThree previously-resolved threads were reopened because the requested changes were not made in the current branch state: Reopened threads:
Thread on process-app-v0/uipath.json.example remains resolved — maintainer explicitly declined that change. |



Fix sample-app convention gaps
Clears the structural violations flagged by the sample-app gate (PR #595) across all 12 sample apps, and adds preview demos for every app that can run against a live tenant. Draft while the 5 action-app previews are sorted (see below).
What changed
Action apps (
coded-action-apps/*, 5 apps) — added auipath.json.example, a.gitignorethat ignores.uipath, and a favicon.Web apps (
process-app-v0,process-app-v1,conversational-agent-app) — migrated to use@uipath/coded-apps-devvite plugin. Config now comes from injected<meta name="uipath:*">tags via a config-lessnew UiPath()rather thanimport.meta.env; dead.env/type config was removed.Misc —
data-fabric-app-angular.gitignorenow ignores.uipath;document-validation-app's example config was renamed touipath.json.example.Two changes worth calling out
new UiPath()needs SDK ≥ 1.4, so their@uipath/uipath-typescriptdep moved to^1.3.1(resolves 1.5.3). That surfaced one API-drift fix:getExecutionHistorynow takes afolderKey.Preview demos
Captured live against a real tenant
Still needs a preview: