Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(services-bff): My pages bff setup (#16543)
* Fix user menu test * Updates to environment and config * Update infra allowed external api urls to be hard coded * Simplify client urls with bff postfix in it * Add ingress to project and remove logout redirect path in favour of client base url * Add docker express to services bff * update config simpler syntax * chore: nx format:write update dirty files * Update config and redis dev setup * Update crypto service to include algorithm in the encryption, explain better in comments what encrypt/decrypt is doing and update crypto test to not use mock * Remove CORS entirely in favour of client proxy config * Update error handling in bff backend, refactor infra and handle error query param in client * When proxy service errors then handle as unauthorized. Update targetUrl to be defensive, i.e. no undefined possible. * Remove unnecessary Uint8Array conversion * Simplify the BFFUser object to not have dateOfBirth and remove double scope field which was due to backwards compatibility * Update cookies to share constants, update options to be more secure * access token expire time latency by 5 sec * remove omit * Update user profile cache ttl * update cache ttl again and rename baseUrl to issuerUrl in ids service * reaname var * remove params from cache attempt that where not used in the callback * Clean up old session in login callback if it exists * Fix login callback cache clean up and revoke refresh token * Update logout flow to clean up, revoke tokens and better validation. Also deletes the logout callback * remove unused import * Simplify error in favour of enhanced fetch * created enhanced fetch module, moved pkce service to services, updated proxy service and a little refactor * par support flag not optional * Fix typo * Add better validation to crypto decryption function * Update validate uri to be more secure, create test for validate uri. Update port range in environment * Remove state param from logout to ensure it will not be passed to redirect uri * Adding more tests and increasing security in the function * Refactor after reading comments from coderabbit * remove private from method for test * Move portal scopes to shareable location. * Remove unused import * Add no_refresh query to user endpoint in backend * Polling and broadcaster added to react spa bff library * Enhanced security in pkce service.and improve error handling to be more secure * Update usePolling to have better types and secure resumabiltiy. * Refactor useBroadcaster. * Add client logic to handle the case if bff server goes down * Fix tests and builds * Fix portal infra local vars * DX infra setup for services-bff * Remove error log from revokeRefreshToken since it is handled by enhancedFetch and update download service local url * Rename cached toke fields to be prefixed with encrypted and fix where encryption was missing. Also fix for revoking wrong token * Better handling on errors in auth service * Update api requests formatting and handling to handle exceptions and errors better. * Update apps/services/bff/src/app/bff.config.ts simpler redis config Co-authored-by: Eiríkur Heiðar Nilsson <eirikur@nilsson.is> * cleanup after commit from github * Update after our pull request AI suggested the change * Remove broadcaster mocks * Remove redundant timeout in favour of poller * Fix portal config, fix redis cache module init, update bff provider to handle logout in before redirect * Remove timeout in logout broadcasting and throw the error in postRequest if not successful plain text response * Revert the timeout in the logout * chore: charts update dirty files * Rename queries to dto for consistency in monorepo and add log for logout callback * Fix cli error that got merged from main * Fix prettier formatting error * chore: nx format:write update dirty files * fix storybook build * ci: trigger from levy user * fix: use portals-admin, added portal-env test * Revert manual validation and use library * Use fetch instead of post in download url * Fix type errors and add forward get proxy api request * fix: main conflict * chore: charts update dirty files * fix: prettier issues * chore: prettify * chore: nx format:write update dirty files * ci: add services-bff to helm chart * Fix env vars for feature deploy * Fix health check to be excluded from prefix * update global prefix logic * update bff services options * Remove bff redis name env var * Update bff config again * Update portal env spec for feature branch * chore: charts update dirty files * Update validation error log * Remove database healthcheck * Revert globalprefix options and update liveness and readiness infra checks * chore: charts update dirty files * Add auth controller tests * Add logout log for testing in feature deploy * remove unused * clean up auth controller test * chore: nx format:write update dirty files * Add tests for proxy controller * Add ref to infra for api * update charts * add zed editor config to gitignore * Add support for mocks * chore: nx format:write update dirty files * Fix portal env spec * chore: charts update dirty files * Update mocking server logic for portals * update mock logic * fix: public envs (#16493) * fix: merge conflict * fix: improved zod schema generation * test: update portal-env test for service building * fix: generate feature deploy urls * fix: improve getEnvUrl func * feat: integrated bff to ServiceBuilder * fix: more abstraction to dsl * fix: simplify and cleanup * chore: remove unused file * chore: cleanup dupes * chore: nx format:write update dirty files * chore: more cleanup --------- Co-authored-by: andes-it <builders@andes.is> * Move my-pages over to bff first attempt * chore: remove nx-command impl (#16532) * chore: move nx runcommand cli to a new PR * chore: commit save point * chore: commit save point * Update infra setup * fix tests * chore: charts update dirty files * update my pages infra * fix env in infra * fix infra url * Removed un used import * chore: charts update dirty files * chore: nx format:write update dirty files * fix: revert secret type changes * chore: nx format:write update dirty files * chore: cleanup * Removed un used import * Update after self review * fix feature deployment url * fix tests * fix missing logger * chore: nx format:write update dirty files * update api graphql bff config env var * update api graphql bff config env var * fix tests * fix tests * chore: charts update dirty files * chore: nx format:write update dirty files * grantnamespaces * chore: charts update dirty files * grantnamespace identity server * chore: charts update dirty files * disable global auth on dev * disable global auth on dev * chore: charts update dirty files * Fix UserMenu test * fix portal core tests * test: update bff tests * test: fix scope bad placement * fix: minor cleanup * chore: nx format:write update dirty files * chore: charts update dirty files * Merge branch 'main' into feat/bff-my-pages # Conflicts: # apps/portals/my-pages/project.json # libs/react-spa/bff/src/lib/bff.hooks.ts * Add authority string to bff state * update to new bff hooks * Revert "Merge branch 'main' into feat/bff-my-pages" This reverts commit 3f74e60. * chore: charts update dirty files * chore: nx format:write update dirty files * Update hooks * chore: charts update dirty files * Update formSubmit handler to proxy bff requests and add external post request to proxy.controller * Fix test * Small fixes * chore: rebuild * update hook after bff addon * Remove unused commit * Add issuer to my-pages * chore: charts update dirty files * chore: nx format:write update dirty files * remove unused env var from my pages infra * chore: charts update dirty files * Introduce legacy user info hook until application system has implemented bff pattern * chore: charts update dirty files * Add useLegacyAuth hook to support both contexts * Revert back to bff only hooks * Update global prefix path for my pages * Fix bff creator logic * fix tests * chore: charts update dirty files * fix tests * chore: charts update dirty files * update charts build error * console.error if no download url is found * fix document type check * fix infra paths * chore: charts update dirty files * feat(application-system-form): Update application-system to use bff (#16973) * Update hooks and frontend code for application system * Add proxy config to application system * Add support to add allowed redirect uris from bff infras * chore: charts update dirty files * chore: nx format:write update dirty files * add application system scopes to my-pages-portal * chore: charts update dirty files * Update mocking setup for all SPAs --------- Co-authored-by: andes-it <builders@andes.is> * update application system ui tests * Fix tests * fix islandis build error * Extend Redis cache keys to be unique between bffs since using same Redis server * Add deprecation messages to old hooks * Fix warning * Fix tests and change separator for cache key * Remove redundant config * Remove options from mock * Fix potential body error * Make sure that bff scopes are uniq * chore: nx format:write update dirty files * Include targetLinkUrl in error redirects * Update base bff infra to be strict about allowed redirect uris * Use bff hooks instead in old auth lib * Add comment about birthday hook and remove user type from isDelegation hook * Remove optional check on profile * Update bff redirect url logic * fix accidental scope switch * chore: charts update dirty files * Update prod url for allowed redirect uris * chore: charts update dirty files * Move comment above hook * Update redirect uris * fix tests * chore: charts update dirty files * Fix prod being null * chore: charts update dirty files * Fix prod url being null when using ctx.env.domain * chore: charts update dirty files * Prod url fix * chore: charts update dirty files * Revert removed auth context * chore: nx format:write update dirty files --------- Co-authored-by: andes-it <builders@andes.is> Co-authored-by: Eiríkur Heiðar Nilsson <eirikur@nilsson.is> Co-authored-by: Jón Levy <levy@andes.is>
- Loading branch information