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): BFF (Backend for Frontend) (#15835)
* Initial bootstrap for bff * environment audit not optional * Add infra file for admin-portal * Auth login controller and service implemented * Updates to auth and user modules and services * Update project readme * Add secret * Remove unnecessary config * Fix env config for ids * Remove unused util isString * chore: nx format:write update dirty files * Rename dto to queries * Add logout flow * Finalize logout logic * Remove proxy * Move type from service to type file * chore: nx format:write update dirty files * Delete libs/auth/react/src/lib/bff/BFFProvider.tsx * Delete libs/auth/react/src/lib/bff/BFFContext.tsx * Small refactor in auth service * Small refactor in test * Small refactor * Fix esbuild * Add scope * chore: nx format:write update dirty files * Updates to bff service and client. WIP * chore: nx format:write update dirty files * Finishing proxy handling by the bff * Add scope to token response for backwards compatibility * Encrypted tokens, hooks update for admin portal, switch user, proxy updated * feat(proxy-api): Support for proxy api, hooks update, regulations download connection with bff * Better naming env * Rename secrets in infra * Refactor after self review * Fix test and env cleanup * 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 <[email protected]> * 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 <[email protected]> * 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 * fix infra url * Removed un used import * fix: revert secret type changes * chore: nx format:write update dirty files * chore: cleanup * fix feature deployment url * fix tests * fix missing logger * chore: nx format:write update dirty files * 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 * disable global auth on dev * chore: charts update dirty files * Update double negation query param * feat: Better error message when running infra cli without aws credentials. * Adding agent to proxy for for managing connections efficiently * Enable PAR support * update tests * chore: charts update dirty files --------- Co-authored-by: andes-it <[email protected]> Co-authored-by: Eiríkur Heiðar Nilsson <[email protected]> Co-authored-by: Jón Levy <[email protected]> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
- Loading branch information