* Control the order of connections in the IdP selection list
* Remove unused import statement
* Fix the sortOrder
* Type fix
* Fix TS error
* Fix build
* Update API version and add sortOrder parameter
* Update swagger specs
* Update swagger
* Add tests
* Add `sortOrder` to GET spec
* Refactor connection retrieval logic and add sorting option
* Fix connection sorting issue
* Fix connection sorting issue
* Update the validation
* Fix the tests
* Filter out connections that are not enabled
---------
Co-authored-by: Aswin V <vaswin91@gmail.com>
Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
* Add support for associating multiple tenants in SAML federated apps
* Add tenants input field to edit and new pages
* Refactor
* Add support for filtering connections by multiple tenants
* Update global CSS styles for react-tagsinput
* Update border-radius for react-tagsinput
* Refactor CSS styles for react-tagsinput
* Update the tenants array
* Cleanup tenants assignment
* Make entity ID read-only
* Update swagger.json
* Add validation to check if an app with the same tenant and product already exists
* Fix error message for duplicate app creation
* Update API handler to use PATCH method instead of POST
* Add product branding support
* Refactor product controller
* Refactor branding and product fetching logic
* Update setup link branding
* Revert
* Fix ProductConfig interface
* Store product config
* Handle Product not found.
* Product id is required
* Cleanup
* Refactor API route validation in middleware.ts
* Show friendly product name instead of id
* Refactor product fetching
* Get Federated SAML apps by product
* move to /ee
* Rename method
* Fix APIs
* delete app by tenant + product
* get app by tenant and product
* Fix the params
* Fix the params
* Change API path to /saml-federation
* Update the paths
* use /federated-saml
* Revert
* Add swagger specs
* Fix tests
* display toast and adjust the width of the content
* customize the branding for setup links
* use the branding in setup links page
* Admin Branding WIP
* Update settings
* Move to ee folder
* If the licence is not valid, return the default branding
* update translation
* Add logo to the idp selection page
* add license check to the API
* read default branding from a common place
* add LicenseRequired
* cleanup
* Add License check to NPM
* Fix
* Add --pf css variable
* fix the idp selection page
* use default branding if value is not set
* Fixes
* Improved the store and keys
* Infer the return type
* Whitelabeling the IdP selection screen per tenant and product
* Fix the param type
* Fix the unit tests
* Fix mismatch in server/client rendering
* Switch to radio button look and feel
* Use rounded border only for textual inputs
* Cleanup import
* Move routing to `useEffect`
* Fix server render mismatch
* fixed merge conflict
* fixed merge conflict
---------
Co-authored-by: Aswin V <vaswin91@gmail.com>
Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
* Add alert component
* Add a loading state component
* Now Emptystate accept an optional prop description
* SAML federation create app controller
* Add the UI to create and list SAML federation apps
* Create SAML federation app and metadata
* wip
* wip
* wip
* Cleanup
* Fix the return values
* Delete the session after the SAML response is sent to the user
* wip
* Revert the changes to the ConnectionAPIController
* wip - IdP selection, session fixes
* Fix the flow
* Refactor
* Refactor
* wip
* Refactor the idp selection page - wip
* Refactor
* Refactor the resolve connection
* Refactor the idp selection
* Refactor the idp/app selection and other fixes
* wip
* Refactor
* Refactor the SAML response handling to merge the logic
* Rename the methods
* Move the saml federation to /ee folder
* Fix the imported types
* wip
* wip /ee
* Move the federated SAML UI to /ee
* Move to /ee folder
* wip admin portal
* Delete the SAML federation app
* Rename the controllers
* Add the translation
* Add the proper license check
* Add the unit tests
* tweaks to test
* tweaks to test
* Changes to the controller and other cleanup
* Fix API routes headers
* Use new toast
* Add button to download cert
* Tweaks
* log cleanup
* saml federation is part of enterprise sso
* entityID now contains the unique hash needed for each tenant + product combination
* cleanup
* cleanup
* we don't need a unique entityID
* text tweaks
Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
* Share setup link related changes
1. Setup link creation for saml connection
2. Setup link creation for Directory sync
3. Regeneration of Setup link
4. Ability to open setup link without login
5. Setup link opens up SAML connection page
6. Saml Connection page hides Tenant & Product fields
* Saving SAML and OIDC configuration
* showing the connection list on setup page
* Connections CRUD
* UI changes for Setup layout
* semantics changes connection -> sso-connection
* directory sync support for share link
* showing only current tenant product directories
* fixes mentioned in commnets by Aswin
* prettier formatting
* fixed route
* minor fixes
* Fix the layout rendering for the /setup routes
* minor fixes
* review changes
* package lock changes
* package json and lock changes
* removed xmlbuilder
* package lock changes
* removed api call from ConnectionList component
* Back button link fix
* intermediate changes for Setup link list feature
* setup link list related changes
* UI fixes and actions
* removed unwanted import
* setup link list action hooked with correct functions
* path rewrites, styling changes, toast
regenerate & delete setup links
* fixes for mutate
* minor tweaks to clipboard icon
* updated package-lock
* formatting changes
* removed console log
* Added cusor pointer for action for LinkList component
Removed unused variable & validation of empty token
Removed redundent validation code
linting fixes
* Auto redirect in setup link page for sso-connection create form
Delete icon on setup link list page on hover red color & tooltips
* removed redirect and used isValidating
* fixes for router replace
* toast for setup links
* fixes for dsync apis
* redirect related change
* removing redirect for sso-connection
* fallback to error.message
Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
Co-authored-by: Kiran <kiran@boxyhq.com>
* Support connection dynamic param in route
* Pass `connection`
* Fix tests
* Accept oidc params and validate the same
* Rename `connection` --> `strategy`
* Use saml for preLoadedConfig for now
* Rename `apiController` --> `apiConfigController`
* Flatten the params
* Validate passed config
* Backward compatibility for embed setup
* Impl for oidc config save
* index addition for oidc clientId
* Remove param, defaults to saml
* Validation will be done inside controller
* Zap secondary index on clientId, not required
* Rename `APIConfigController` --> `ConfigAPIController`
* Update swagger
* Fix name
* Fix name elsewhere
* Revert filter
* Split `saml` and `oidc` create/update logic
* Route `saml` and `oidc`
* Test update
* Update swagger
* Update swagger
* Use tenant/product from stored config
in lieu of params
* Validate passed OIDC clientId using hash
* Update swagger annotations
* Handlers for getting OIDC/SAML configs
* Validate tenant/product in update
* Typo fix
* Fix test
* Default to empty string, validation is done
to check if the params are not empty
* Extract provider name just like saml
* OIDC Connection support
*delta for authorize*
- Renamed samlConfig(s) → connection(s)
- Renamed resolvedSamlConfig -> resolvedConnection
- Detect connection is SAML or OIDC
- Perform Issuer discovery and oidc client init
- Tweak error responses
- Persist oidc client metadata in session
* Test type fix
* Test fix
* openid-client dependency
* Sync package locks
* Fix return type
- Remove `undefined` from return type
- Return `OAuthErrorResponse` for else case
* Handle OIDC Authorization response
* Persist OIDC code_verifier
* Remove scope check for OIDC connection
* Normalize scope before relaying
* Method name update
* Extract user profile from id token and userinfo
* Handle error response from OIDC Provider
* Update type
* Type update with OIDC specific error codes
* Bug fix : typo
* Cleanup
* OIDC callback route
* Bug fix: return profile and parameter fix
* Rename `config` -> `connection`
* Use `Link` and add oidc connection nav item
* Use `strategy` from query param
* Delta ↴
- Reorganised api routes
- Removed Admin controller filtering methods for saml/oidc
* Fix page link in e2e test
* Changes:
- Handle oidc connection fields
- Rename component file path
* Remove slug for save/update connection
* Fix keyname in update operation
* Import path update
* Radio select connection type for new connection
* Update lock file
* Sync lock file
* Sync package lock
* Fix connectionType detection for new connection
* Fix error message
* Add comment
* Tweak comment
* Use the correct state and directly from session
* Sync lock file
* Remove `provider` from OAuthReqBody
* Remove duplicate scopes
* Pass recent param additions to idpSelection page
* Add badge for Provider type
* Style tweak
* Style IdP type selection
* Add test for oidc provider
* Comment
* Check for empty state
* Add test for oidcAuthzResponse
* Add test for oidcAuthzResponse
* Add test for error response from OP
* Error message tweak
* Test the happy path
* Remove unused import
* Fix assertion
* - Fix types
- add createOIDCConfig` test for missing params
* Test happy path for `createOIDCConfig`
* Param validation tests for `createOIDCConfig`
* Test for `updateOIDCConfig`
* Tests for `updateOIDCConfig`
* Male `oidcPath` required like `samlPath`
* Bump `openid-client` version
* Refactor
* Update test coverage map
* Tweak label
* Split openid/oauth tests
* call `t.end`
* Fix file name in comment
* Add test teardown
* Improve coverage and rename test files
* For backwards compatibility
* Minor formatting
* Add api paths for /connection
* Zap config path for admin ui
* Update swagger spec
* Rename `configAPIController`
→ `connectionAPIController`
* Rename `IdPConfig` → `IdPConnection`
* Rename `validateIdPConfig` → `validateIdPConnection`
* Rename `createSAMLConfig` → `createSAMLConnection`
* Rename `createOIDCConfig` → `createOIDCConnection`
* Update swagger spec
* Rename `updateSAMLConfig` → `updateSAMLConnection`,
`updateOIDCConfig` → `updateOIDCConnection`
* Make `clientID`/`clientSecret` readOnly
* Rename `configStore` → `connectionStore`
* Update swagger spec
* Add `getConnection` + `deleteConnection`
* Remove `/api/v1/oidc/config`
and keep `api/v1/saml/config`
* Rename `getAllConfig` → `getAllConnection`
* Rename `readConfig` → `loadConnection`
* Rename `deleteConfiguration` → `deleteConnection`
* Add `preLoadedConnection` env
* Update map and cli
* Refactor api tests and rename config to connection
* Rename `configList` → `connectionList`
* Rename `samlConfig` → `samlConnection`
* Rename config -> connection
* Rename `config` → `connection`
* Rename counters for otl
* Sync package lock
* Remove api key validation from api route
* Update Admin ui title
* Update swagger
* Update otl metric descriptions
* Update var naming to connection
* Add strategy validation
* Add tests for invalid strategy
* Sync package lock
* Upgrade and pin version
* Update saml config api with deprecated
* Updated swagger spec for deprecated config api
* Bump package version
* Fix label
* - removed strategy for `get` and `delete`
- Type update
* Type updates
* getConnection -> getConnections,
deleteConnection -> deleteConnections
* Update swagger spec
* Use only for saml connection
* Remove slug from api routes
* API path updates
* Type updates
* Helper util for api routes to check strategy
* Type updates and api changes
* `OAuthReq` typings enhancement
* Narrowed down types for `OAuthTokenReq` and
`OIDCAuthzResponsePayload`
* `IdPConnection` -> `SSOConnection`
* Update cookie name to avoid clash
* Handle the uncaught case to prevent req hanging