Commit Graph

8 Commits

Author SHA1 Message Date
Deepak Prabhakara 6bfb89a74e
Renaming routes for Identity Federation (#2618)
* WIP

* updated swagger file

* renamed routes

* renamed test folder

* separate section for Identity Federation

* sso-tracer -> sso-traces

* don't change ACS url for SAML federation

* SAMLFederation -> IdentityFederation

* SAMLFederation -> IdentityFederation

* keep api/federated-saml but move to api/identity-federation

* test old route as well

* fixed test

* fixed test

* retry tests 3 times

* updated deployment

* WIP create SAML Fed app

(cherry picked from commit 3d15b20a2d)

* Add Admin Portal SSO via SAML Fed

* Minor tweaks

* Use fixture and login using federated connection

* Cleanup SAML fed connection after test, disable failing assertion for now

* Remove only

* Use MockSAML endpoint from env

* Cleanup SSO connections mapped to SAML Fed

* OIDC Fed spec

* Try with higher timeout

* Mutate on page load

* Put back assertion

* Remove assertion and mutate for now

* SAML Fed App + 2 SAML Providers

* Take in optional tenant/product for fixture method

* SAML Fed + 2 OIDC providers

* SAML Fed test cases for single provider

* Tweak title

* Replace swr with fetch

* Remove only

* Bump up timeout to 100s

* Add more test cases for OIDC Fed

* Refactor fetch with hooks

* locale tweaks

* Also try with the other provider

* Fixture support SAML add via raw metadata

* Add second SAML connection using raw metadata

* Revert "Add second SAML connection using raw metadata"

* Revert "Fixture support SAML add via raw metadata"

---------

Co-authored-by: ukrocks007 <ukrocks.mehta@gmail.com>
Co-authored-by: Aswin V <vaswin91@gmail.com>
2024-05-10 11:41:23 +01:00
Kiran K 260597e2e7
Replace apiKey query params with Authorization header for cron endpoints (#1979)
Use Authorization header auth for cron endpoints
2023-11-27 15:00:45 +00:00
Kiran K f32ac6aecb
Store product config (#1952)
* 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
2023-11-24 16:35:20 +00:00
Kiran K e5fe69b62a
Send dsync events as a batch to the webhooks (#1579)
* store the events in the database

* wip DirectoryEvents

* wip

* Update package-lock.json

* wip - bulk sending events

* Batch events

* Remove status DELIVERED

* wip

* add unit tests

* Update package-lock.json

* Fix no-constant-condition

* add process locking

* rearrange files

* Fix imports

* log the webhook events

* Fix the test

* Fix the logs table

* Rename the endpoint

* Fix

* Cleanup

* Tweak

* clear Interval

* validate api key

* Correct sort order

* Updates

* Add unit tests

* Add more test cases

* Move files

* Update package-lock.json

* Fix the import

* Tweak

* Send otel

* Remove unused import

* Prevent parallel processing

* updated package-lock

---------

Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
2023-11-13 23:06:06 +00:00
Kiran K 07a5f8a46d
Google Directory API Integration (#1158)
* Add Google Group API

* Restructure the Group interface

* Rename the methods

* wip

* temp change

* Revert the changes

* Fix the groups from Google

* wip fetch users

* Skip directory check

* Convert to SCIM schema

* Updates to users sync

* Fix the unit test

* Rename folder and merge the files

* add raw to the user payload

* Fix the unit tests

* Optimize the Group sync create ops

* Reorder import

* Remove unused imports

* Add type safety to SCIM Schema

* Fix the users and groups update

* try fixing unit tests

* Fix the file extension

* Delete groups that are not in the directory anymore

* Fix the group update

* Compare and find the delete users

* Add and update group members

* cleanup the test

* Fix the test (temp)

* dont throw error

* Add secondary index if the directory type is `google`

* Rename the file

* wip

* Export functions inline

* Hide the SCIM endpoint and token for non-scim provider

* Update the `dsync` option key to allow multiple providers

* Restructure the folders

* Update folder structure

* Cleanup

* Revert the callback changes

* Fix the type

* Fix the type

* Fix existing unit tests

* add callback

* Fix the internal callback

* Fix the method call

* merge the type files

* add console.info for testing

* Fix the Google OAuth client usage

* Reactor the update method

* Handle no users or group cases

* Refactor the sync method

* Fix the pagination

* Cleanup

* Finish the pagination

* Fix the unit tests

* Fix the lint errors

* Fix the build issues

* Pass directory id to the method

* Pass directoryId while fetching

* apply changes to the UI

* display the Google auth URL

* Fix the type

* add unit tests

* add unit test for syncing users

* add unit tests

* Pass operation to SCIM payload

* unit tests wip 1

* updated

* Test the events deleted

* Test group.user_added events

* Finish the tests

* Revert and cleanup

* update map.js

* Revert

* update the e2e test

* Cleanup

* Revert

* label tweak

* Remove unused import

* Protect the cron job using apiKey

---------

Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
2023-06-15 14:31:38 +01:00
Kiran K 224358df28
Ability to customize the branding of Setup Link pages and the IdP selection pages (ee) (#965)
* 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>
2023-03-09 14:50:25 +00:00
Kiran K eb80fb5297
Use middleware to validate the API requests (#792)
* Update

* Validate the API routes in the middleware

* Validate the setuplink token by calling the API

* Tweaks

* unAuthorizedResponse method now accept a message

* Update middleware

* Cleanup

* Update message

* Removed CheckSession - Not needed anymore

* Updates to API authentication middleware

* Updates to API authentication middleware

* Remove the use of checkSession from retraced admin APIs

Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
2023-01-06 23:37:08 +00:00
Kiran K 461a820b6d
Directory Sync (#202)
* SCIM Config API - / POST

* SCIM wip

* Add SCIM Webhook

* Send webhoo event, and add signature

* SCIM Group wip

* wip

* SCIM wip

* User store wip

* wip

* wip

* SCIM - Groups management

* Add the params validation

* Cleanup

* Create user API, return the created user

* Replace the nanoid with crypto
    .randomBytes

* Improve the transform methods

* Fix the events APIs

* Fix

* Wip - Testing with OneLogin SCIM

* wip

* Make changes to SCIM APIs

* wip

* Add the method createRandomSecret

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* refactor wip

* refactor wip

* wip

* Users finished

* Group finished

* Group fix

* Fix the types

* Fix the types

* wip webhook events

* Fix the config API

* wip

* wip

* wip

* wip

* Improve the methods

* wip

* wip

* wip webhook

* Refactor the code

* Add some comments

* Fix the API

* wip SCIM

* Fix the pk

* Return the all the groups

* Fix

* Improve the code

* Final changes

* wip APIs

* Rename variables

* Rename the classes

* Fix the APIs

* wip

* Admin UI - wip

* Add SCIM config screen

* Admin UI wip

* Admin UI wip

* Admin UI wip

* Fix the Admin UI

* Add tabs

* Add tabs

* Add user screens

* Add EmptyState

* Add users, groups info screen

* Add JSON syntax highlighter

* Fix the config details screen

* Add authentication to the APIs

* wip

* Add types

* Add webhook event logs

* Add type to directory

* Display the event log details

* Fix the missing arg

* Ability to configure the logging enable/disable

* Display alert if webhook logging is disabled

* Fix the SCIM

* Applied prettier

* Search users by userName

* Fix the section width

* Add pagination for /users /groups in admin UI

* Add pagination for directory listing

* Fix the issues with list()

* Add APIs

* Add Next.js middleware for authentication

* Fix the TS issue

* Add pagination for SCIM /users

* Add pagination for SCIM /users

* Moved the tests into sub folders

* Add unit tests for directories, users

* wip

* wip - unit tests

* wip - unit tests

* Some improvments

* wip

* Finished the SCIM unit tests

* Some fixes

* Fixes

* Rename methods

* Fix the TS

* Many fixes

* Fixes

* Fixes

* SCIM Fixes

* SCIM updates

* Fix the unit tests

* Fix the unit tests

* Fix the unit tests

* Improve the unit tests

* A fix

* File renamed as per JS standard

* Fix

* Updates

* Fix the SCIM APIs

* Fix the tests

* Added the Base class

* Some fixes

* Some fixes

* Some fixes

* Fix the events

* Renamed to directorySyncController for consistency

* Moved the createId to Base class

* Moved the createId to Base class

* Remove the Next.js middleware and add authentication to each routes

* Change the text

* Merged

* Revert the changes

* Improved the response of the SDK and APIs

* Fix the return value

* Azure related changes

* Add the middleware back

* Infer the types from getServerSideProps

* givenName and familyName can be empty depends on the mapping

* Fix the issue with update

* API changes

* Fixes

* Fix the types

* Revert the change

* Improving the Webhooks and Callback

* Added the event callback and changed the implementation for Webhook

* Fix the SCIM API

* Fix the events.ts file

* wip

* Cleanup and improve the request handler

* Revert the package.json changes

* Make the directory name optional.

* Add a generic scim provider to the type

* wip

* Remove supabase UI

* Update package-lock.json

* Update the UI with DaisyUI

* UI fixes

* Final changes to the UI

* Standardize the Input theme

Co-authored-by: Kiran <kiran@Kirans-MacBook-Pro.local>
Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
2022-09-08 15:36:18 +01:00