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
vishalboxyhq 0b99c7d667
Feature/typeorm migrations (#141)
* updated typeorm

* renamed connection

* updated migration scripts to new TypeORM version (v3)

* typeorm and mongo -migrations and namespace column

* update the mongo migration file

* remove the camelcase

* remove camelcase

* rename the file

* renaming migration files

* folder restructuring and add migrate-mongo package

* correcting path and minor changes

* merging db name with URL

* changing ts to js for mongo

* migration automation with env variable

* using custom scripts for migration

* Dockerfile fixes

* bootstrap script fixes and still need ts-node migrate-mongo in dockerfile

* running migration in CI/CD

* turning down planetscale

* migration related fixes for namespace

* Migration & bootstrap changes

* reverting minor change

* bootstrap.sh will only run in docker env

* bootstrap RUN_MIGRATION env variable will use true

* migration fixes

* migration changes

* removed console logs

* planetscale migration fixes

* copied back old files, tweaks to filenames

* add index for namespace

* restore older migration scripts

* formatting

* aligned timestamps

* updated mysql, mariadb, mssql, planetscale namespace migrations

* We'll run migrate manually as a separate step/container

* forgot to add migrate.sh

* bumped up timestamp

* Enable planetscale testing

* Revert planetscale test and comment config object

* Revert deletions in Dockerfile

* Update maria, mssql, mysql, ps, pg, sql namespace migrations

* Cleanup

* Add runMigration env to support manual run

* Minor tweak

* Ensure sql data migrations run after schema changes

* Fix mssql namespace data migration query

* Sync lock file

* Update mongo timestamp

* Set env for npm mongo migration script

* [sql] Populate namespace column for synchronize: true instances

* Rename `DB_RUN_MIGRATION` -> `DB_MANUAL_MIGRATION`

* [mongo] Populate namespace for already deployed instances

* Cleanup migrate.sh

* [bash -> sh] bash does not work inside docker

* Optimise migration artifacts

* Source packages from global path

* Copy npm from build context - excludes node_modules via .dockerignore

* Remove redundant copy step

* added swc packages

* fresh package-lock

* fresh package-lock

* added migratepg job to skaffold
fixes in migrate.sh to exit with error when migration fails

* cleanup

* added migratepg to demo skaffold as well

* turn on planetscale tests

---------

Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
Co-authored-by: Utkarsh Mehta <ukrocks.mehta@gmail.com>
Co-authored-by: Aswin V <vaswin91@gmail.com>
2023-10-13 23:29:21 +01:00
.github Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01:00
.vscode Automatic class sorting with prettier plugin for tailwind (#105) 2022-02-23 17:37:24 +00:00
_dev cleanup (#1690) 2023-10-01 00:26:14 +01:00
components Fix sdk css load (#1768) 2023-10-13 10:47:40 +05:30
e2e Updates to SAML federation (#1724) 2023-10-05 17:47:20 +01:00
ee Enhance SAML federation flow (#1743) 2023-10-10 14:22:11 +01:00
kustomize Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
lib Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
locales/en Fix readonly view (#1386) 2023-07-31 22:41:03 +05:30
npm Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
pages Fix sdk css load (#1768) 2023-10-13 10:47:40 +05:30
public Add a new UI for the login screen (#647) 2022-11-03 18:48:32 +00:00
styles Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01:00
swagger Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01:00
types Retraced Admin UI (#452) 2022-12-30 17:02:16 +00:00
.dockerignore Enhancements (#584) 2022-10-11 20:32:18 +05:30
.env.example Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
.eslintignore Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
.eslintrc.js Bump @typescript-eslint/eslint-plugin from 5.61.0 to 6.0.0 (#1311) 2023-07-11 13:56:55 +01:00
.gitignore updated tap (#1615) 2023-09-25 11:03:21 +01:00
.prettierignore Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01:00
.prettierrc.js Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01: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
Dockerfile Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01: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 Format using prettier and add check-format step to GH actions (#1759) 2023-10-11 09:18:03 +01: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
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 Google Directory API Integration (#1158) 2023-06-15 14:31:38 +01: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 Add new API paths `/api/v1/sso` and `/api/v1/dsync` (#1375) 2023-07-31 22:49:27 +05:30
package-lock.json Feature/typeorm migrations (#141) 2023-10-13 23:29:21 +01:00
package.json bumped up version 2023-10-13 12:24:17 +01: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 Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-demo.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-dynamodb.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-mariadb.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-mongo.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-mssql.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-mysql.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
skaffold-postgres.yaml Skaffold Update (#1634) 2023-10-07 02:38:21 +01:00
tailwind.config.js Switch to react-daisyui (#750) 2022-12-20 17:18:58 +00:00
tsconfig.json Bootstrap ui sdk development with Login component (#735) 2023-01-11 22:16:23 +00:00
types.ts Dynamodb support (#980) 2023-03-16 21:42:36 +00:00

README.md

BoxyHQ Banner

Participating in

Hacktoberfest

⬆️ Take a look at our Issues ⬆️


· Explore the docs »
· SaaS Early Access »

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 if you want us to continue developing and improving SAML Jackson! 😀

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

Source code visualizer

CodeSee codebase visualizer

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 run custom-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