SAML Jackson: A SAML SSO service designed as an OAuth 2.0 flow. Integrate SAML with just a few lines of code. Demo - https://saml-demo.boxyhq.com
Go to file
Aswin V 1188dd6396
Pagination fixes (#2347)
* `offset` -> `pageOffset`, `limit`-> `pageLimit`

* Be backward compatible in API

* Cleanup types and handle pagination qs

* Cleanup unused code

* Import type

* Cleanup and fix lint error

* Align params for sso-tracer

* Move parsing to a common util function

* pageLimit shouldn't be optional

* Cap pageLimit to max value, split the boolean

* Revert typings and assert non null

* Refactor var name

* Use util function to normalize pagination params across getAll and getByIndex

* Normalize offset/limit for dynamo/mongo

* Update query params in `FederatedSAMLApps`

* Cap to max limit if passed limit is 0

* Sync lock file

* Add a 3rd record and supply opts.pageLimit

* Normalize offset/limit for mem/redis

* Save the 3rd record in the store

* Fix getAll tests

* Give precedence to standard params over legacy

* Use util function

* Parse using util function

* Refactor

* Standardise pagination for `api/v1/dsync/events`

* Standardise pagination for api/admin/connections

* Standardise pagination for api/admin/directory-sync

* Standardise pagination for `api/v1/dsync/groups`

* Standardise pagination for `v1/dsync/users`, `v1/dsync/product`

* Standardise pagination in fetchByProduct APIs

* Update swagger for groups

* Fix pagination params definition, add the params for users api

* More swagger updates

* Swagger spec update for dsync events

* Add pagination params to apis fetching by product

* Update qs in internal-ui

* Remove type assertion

* [Swagger WIP] Fix response format for paginated APIs

* Add dsync events to swagger spec

* Fix swagger spec for sso tracer

* Fix swagger spec for federated-saml apps of a product

* Update pageLimit to 50

* Use pageLimit value from internal-ui

* Update UI SDK

* Cleanup local pagination component

* Update swagger version

* Remove unused keys from locale

* Fix tag for trace api spec

* Fix param name for swagger

* Fix swagger tag for trace

* updated package-lock

* updated package-lock

---------

Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
2024-03-06 20:14:14 +00:00
.github Fix type error (#2374) 2024-03-05 12:44:50 +00:00
.vscode cleanup 2024-01-05 13:34:57 +00:00
_dev updated mongo (#2230) 2024-01-31 18:14:24 +05:30
components Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
e2e Internal UI : Setup Link & SSO Tracer (#2354) 2024-03-01 17:00:38 +00:00
ee Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
internal-ui Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
kustomize updated deployment, package-lock 2024-03-06 11:25:34 +00:00
lib Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
locales/en Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
npm Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
pages Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
public Add a new UI for the login screen (#647) 2022-11-03 18:48:32 +00:00
styles Add `@boxyhq/internal-ui` (#2305) 2024-02-27 22:12:39 +00:00
swagger Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
types Pagination fixes (#2347) 2024-03-06 20:14:14 +00:00
.dockerignore Enhancements (#584) 2022-10-11 20:32:18 +05:30
.env.example Feature/ory (#2205) 2024-01-30 14:47:08 +00:00
.eslintignore Add `@boxyhq/internal-ui` (#2305) 2024-02-27 22:12:39 +00:00
.eslintrc.js Add missing translations (#2089) 2023-12-27 12:21:53 +00:00
.gitignore Add `@boxyhq/internal-ui` (#2305) 2024-02-27 22:12:39 +00:00
.prettierignore Add `@boxyhq/internal-ui` (#2305) 2024-02-27 22:12:39 +00:00
.prettierrc.js Bump prettier from 3.2.4 to 3.2.5 (#2254) 2024-02-04 14:31:03 +00:00
.release-it.json Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01:00
CODE_OF_CONDUCT.md added code of conduct 2022-09-20 22:38:52 +01:00
CONTRIBUTING.md looks like we don't need custom-install anymore (#1948) 2023-11-18 13:30:04 +00:00
Dockerfile updated nextjs (#2379) 2024-03-04 21:44:49 +00:00
LICENSE Fix react SDK and license issues (#880) 2023-01-24 22:02:37 +05:30
Procfile Support standalone build in npm start script (#1292) 2023-07-29 02:39:35 +05:30
README.md Update README.md 2024-02-27 23:47:24 +00:00
SECURITY.md Added SECURITY.md 2022-02-16 16:05:43 +00:00
app.json Add missing env to one click deploy (#122) 2022-03-18 18:37:44 +00:00
check-locale.js New OIDC fed (#2336) 2024-03-05 16:57:02 +00:00
i18next.d.ts Bump next-i18next from 12.1.0 to 13.0.2 (#753) 2022-12-20 20:11:27 +00:00
middleware.ts Replace apiKey query params with Authorization header for cron endpoints (#1979) 2023-11-27 15:00:45 +00:00
migrate.sh Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
next-env.d.ts Next.js service (#53) 2022-01-05 12:09:51 +00:00
next-i18next.config.js feat: add i18n internationalization (#560) 2022-10-08 18:54:43 +01:00
next.config.js Enable server sourcemaps (#2242) 2024-02-01 17:28:29 +00:00
package-lock.json Bump @boxyhq/react-ui from 3.3.37 to 3.3.38 (#2388) 2024-03-06 11:52:18 +00:00
package.json Bump @boxyhq/react-ui from 3.3.37 to 3.3.38 (#2388) 2024-03-06 11:52:18 +00:00
playwright.config.ts Support standalone build in npm start script (#1292) 2023-07-29 02:39:35 +05:30
postbuild.ts Fix build setup for windows (#1548) 2023-09-02 20:27:37 +01:00
postcss.config.js Signing of SBOM reports (#99) 2022-02-22 19:17:32 +00:00
prebuild.ts Fix build setup for windows (#1548) 2023-09-02 20:27:37 +01:00
skaffold-demo-services.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-demo.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-dynamodb.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-mariadb.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-mongo.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-mssql.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-mysql.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-postgres.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-prod-eu-services.yaml updated skaffold 2023-10-27 12:29:31 +01:00
skaffold-prod-eu.yaml updated skaffold 2023-10-27 12:29:31 +01:00
tailwind.config.js Add `@boxyhq/internal-ui` (#2305) 2024-02-27 22:12:39 +00:00
tsconfig.json Bump prettier from 3.2.2 to 3.2.3 (#2163) 2024-01-17 10:53:32 +00:00

README.md

BoxyHQ Banner

· Explore the docs »
· SaaS Sign Up »

SAML Jackson: Enterprise SSO made simple

npm Docker pull Github stargazers Github issues license Twitter LinkedIn Discord node-current Swagger Validator

Deploy with Vercel Deploy

🚀 Getting Started with SAML Jackson

Please star the repo to support us! 😀

Streamline your web application's authentication with Jackson, an SSO service supporting SAML and OpenID Connect protocols. Beyond enterprise-grade Single Sign-On, it also supports Directory Sync via the SCIM 2.0 protocol for automatic user and group provisioning/de-provisioning.

There are two ways to integrate SAML Jackson into an application. Depending on your use case, you can choose either of them.

  1. separate service (Next.js application) Admin Portal out of the box for managing SSO and Directory Sync connections.
  2. NPM library as an embedded library in your application.

SAML/OIDC SSO service

Jackson implements the SAML login flow as an OAuth 2.0 or OpenID Connect flow, abstracting away all the complexities of the SAML protocol. Integrate SAML with just a few lines of code. We also now support OpenID Connect providers.

Try our hosted demo showcasing the SAML SP login flow here, no SAML configuration required thanks to our Mock SAML service.

🎦 Videos

Demo

Here is what deploying SSO looks like with and without BoxyHQ

BoxyHQ Banner

Documentation

For full documentation, visit boxyhq.com/docs/jackson/overview

Directory Sync

SAML Jackson also supports Directory Sync based on the SCIM 2.0 protocol.

Directory sync helps organizations automate the provisioning and de-provisioning of their users. As a result, it streamlines the user lifecycle management process by saving valuable organizational hours, creating a single truth source of the user identity data, and facilitating them to keep the data secure.

For complete documentation, visit boxyhq.com/docs/directory-sync/overview

Observability

We support first-class observability on the back of OpenTelemetry, refer here for more details.

SBOM Reports (Software Bill Of Materials)

We support SBOM reports, refer here for more details.

Container Signing and Verification

We support container image verification using cosign, refer here for more details.

Development Setup

Database

To get up and running, we have a docker-compose setup that will spawn all the supported databases. Ensure that the docker daemon is running on your machine and then run: npm run dev-dbs. In case you need a fresh start, destroy the docker containers using: npm run dev-dbs-destroy and run: npm run dev-dbs.

Development server

Copy the .env.example to .env.local and populate the values. Have a look at https://boxyhq.com/docs/jackson/deploy/env-variables for the available environment variables.

Run the dev server:

# Install the packages
npm install
# Start the server
npm run dev

End-to-End (E2E) tests

Create a .env.test.local file and populate the values. To execute the tests run:

npm run test:e2e

🖳 Contributing

Thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody and are appreciated.

Please try to create bug reports that are:

  • Reproducible. Include steps to reproduce the problem.
  • Specific. Include as much detail as possible: which version, what environment, etc.
  • Unique. Do not duplicate existing opened issues.
  • Scoped to a Single Bug. One bug per report.

💫 Support

Reach out to the maintainers at one of the following places:

🤩 Community

  • Discord (For live discussion with the Open-Source Community and BoxyHQ team)
  • Twitter (Follow us)
  • Youtube (Watch community events and tutorials)

🛡️ Reporting Security Issues

Responsible Disclosure

📌 License

Apache 2.0 License