Add OpenFGC Portal Frontend#36
Merged
VimukthiRajapaksha merged 163 commits intoJun 24, 2026
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 46 out of 60 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
portal/frontend/src/features/consent-registry/components/ConsentRevocationDialog.tsx:144
- Button labels use translation keys that already have English strings (e.g., revocation.confirm/cancel), but the fallback defaults here ('Revoke All Data' / 'Keep Permissions') do not match the resource values ('Revoke Consents' / 'Cancel'). Align the fallback defaults with the i18n resources (or omit the defaults) to avoid confusion and inconsistent copy if the translation key is ever missing.
- Pending UI filter now sends only backend-supported CREATED. - Rows-per-page options are centralized in portal/frontend/src/features/consent-registry/constants.ts and reused by both URL parsing and the table. - Revocation dialog fallback strings now match the English i18n resources.
1. `main.tsx` non-null root assertion: true.
2. `apiRequest` returning `undefined as T` for 204: true.
3. `apiClient` absolute URL risk: false as written. This code concatenates first, so `http://...` becomes part of the path; base is not silently ignored. Guard is still reasonable.
4. `EPOCH_MILLISECONDS_CUTOFF` magic constant: true.
5. `ConsentDetailsPage` too large / should split: true.
6. Large commented lifecycle block: true.
7. Unused mock data under `src/features`: true.
8. `ConsentRecord.status` should use `ConsentAPIStatus`: mostly true, but ensure it includes normalized status values actually used by UI.
9. `key={location.search}` remounting page: true.
10. Inline row/action handlers allocation concern: technically true, but low-priority micro-optimization.
11. `import App from './App.tsx'` inconsistency: true.
12. Clear button accessibility: true, since text is just `Clear`.
13. Native `type="date"` accessibility/browser concerns: true, but recommendation depends on dependency decision.
14. Approval dialog focus: plausible/needs verification; not proven from code.
15. `50ms` skeleton debounce too aggressive: true.
16. Test globals in `tsconfig.app.json`: true.
17. CI localhost env comment: true, but only documentation hygiene.
18. ESLint config ignoring itself needs comment / FlatCompat note: true, but documentation hygiene.
19. Migrate deprecated props to reccomended alternatives
VimukthiRajapaksha
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Bootstrap and initialize the OpenFGC Portal frontend with the core UI infrastructure, project setup, and consent management pages.
Goals
Approach
User stories
Documentation
portal/frontendAutomation tests
Security checks
✓ Followed secure coding standards in WSO2 Secure Engineering Guidelines
✓ Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets