Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release PR #528

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,20 @@
}
],
"commit": false,
"fixed": [["@forgerock/javascript-sdk", "@forgerock/ping-protect"]],
"fixed": [["@forgerock/javascript-sdk"]],
"linked": [],
"access": "public",
"baseBranch": "master",
"updateInternalDependencies": "patch",
"ignore": [
"@forgerock/device-client",
"@forgerock/ping-protect",
"@forgerock/token-vault",
"autoscript-apps",
"autoscript-suites",
"davinci-app",
"mock-api",
"token-vault-app",
"@forgerock/token-vault-interceptor",
"token-vault-proxy",
"token-vault-suites",
"davinci-suites"
"token-vault-suites"
]
}
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
node_modules
pnpm-lock.yaml
packages/*/docs
packages/*/coverage

57 changes: 12 additions & 45 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,14 @@
# JIRA Ticket

Please link jira ticket here

# Description

# Type of Change

Please Delete options that are not relevant

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update

# How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

# Definition of Done

Check all that apply

- [ ] Acceptance criteria is met.
- [ ] All tasks listed in the user story have been completed.
- [ ] Coded to standards.
- [ ] Code peer-reviewed.
- [ ] Ensure backward compatibility (special attention).
- [ ] API reference docs is updated.
- [ ] Unit tests are written.
- [ ] Integration tests are written.
- [ ] e2e tests are written.
- [ ] CI build passing on the feature branch.
- [ ] Functional spec is written/updated
- [ ] contains example code snippets.
- [ ] Change log updated.
- [ ] Documentation story is created and tracked.
- [ ] UI is completed or ticket is created.
- [ ] Demo to PO and team.
- [ ] Tech debts and remaining tasks are tracked in separated ticket(s).

## Documentation

- [ ] Acceptance criteria met
- [ ] Spell-check run
- [ ] Peer reviewed
- [ ] Proofread
<!--
Add a Jira ticket here if applicable
-->

## Description

<!--
Describe the changes
-->
<!--
Did you add a changeset?
-->
7 changes: 6 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@ jobs:
- run: git branch --track develop origin/develop

- run: pnpm exec nx-cloud record -- nx format:check --verbose
- run: pnpm exec nx affected -t build lint test e2e-ci --verbose
- run: pnpm exec nx affected -t build lint test docs e2e-ci --verbose

- uses: codecov/codecov-action@v5
with:
files: ./packages/**/coverage/*.xml
token: ${{ secrets.CODECOV_TOKEN }}

- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,8 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_CONFIG_PROVENANCE: true

- uses: codecov/codecov-action@v5
with:
files: ./packages/**/coverage/*.xml
token: ${{ secrets.CODECOV_TOKEN }}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ e2e/token-vault-app/public/assets/
bundles/
docs/
coverage/
packages/**/coverage/
node_modules/
samples/_static/js/*.js*
tests/**/app/index.js*
Expand Down Expand Up @@ -61,6 +62,7 @@ todos/*
users/*
#Project Docs
docs/packages/javascript-sdk
packages/*/docs
**/playwright-report
**/playwright/.cache

Expand All @@ -79,3 +81,6 @@ terminalOutput
outputs/*


e2e/mock-api-v2/html/*

vitest.config.*.timestamp*
42 changes: 19 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

<p align="center">
<a href="https://github.com/ForgeRock">
<img src="https://www.forgerock.com/themes/custom/forgerock/images/fr-logo-horz-color.svg" alt="Logo">
<img src="https://cdn-docs.pingidentity.com/navbar/ping-logo-horizontal.svg" alt="Logo">
</a>
<h2 align="center">ForgeRock SDK for JavaScript</h2>
<h2 align="center">Ping SDK for JavaScript</h2>
<p align="center">
<a href="https://github.com/ForgeRock/forgerock-javascript-sdk/blob/master/CHANGELOG.md">Change Log</a>
·
Expand All @@ -15,9 +15,9 @@
</p>
<hr/></p>

The ForgeRock JavaScript SDK enables you to quickly integrate the [ForgeRock Identity Platform](https://www.forgerock.com/digital-identity-and-access-management-platform) into your client-side JavaScript apps.
The Ping SDK for JavaScript enables you to quickly integrate Ping products into your JavaScript apps.

Use the SDKs to leverage _[Intelligent Authentication](https://www.forgerock.com/platform/access-management/intelligent-authentication)_ in [ForgeRock's Access Management (AM)](https://www.forgerock.com/platform/access-management) product, to easily step through each stage of an authentication tree by using callbacks.
Use the SDKs to leverage _[Intelligent Access](https://www.pingidentity.com/en/platform/capabilities/intelligent-access.html)_ to easily step through each stage of an authentication tree by using callbacks.

<!------------------------------------------------------------------------------------------------------------------------------------>
<!-- REQUIREMENTS - Supported AM versions, API versions, any other requirements. -->
Expand All @@ -26,7 +26,8 @@ Use the SDKs to leverage _[Intelligent Authentication](https://www.forgerock.com

- ForgeRock Identity Platform

- Access Management (AM) 6.5.2+
- Ping Advanced Identity Cloud
- PingAM 6.5.2+

- Browsers:

Expand All @@ -39,8 +40,6 @@ Use the SDKs to leverage _[Intelligent Authentication](https://www.forgerock.com
- npm
- npm 7+ is required to use this project and the sample apps, since npm workspaces are used to install dependencies in sub-projects such as the sample apps

> **Tip**: Older browsers (like IE11) may require multiple [polyfills, which can be found in our documentation](https://sdks.forgerock.com/javascript/polyfills/).

<!------------------------------------------------------------------------------------------------------------------------------------>
<!-- INSTALLATION -->

Expand All @@ -52,9 +51,9 @@ npm install @forgerock/javascript-sdk

## Samples

ForgeRock provides these samples to help demonstrate SDK functionality/implementation. They are provided "as is" and are not official products of ForgeRock and are not officially supported.
ForgeRock provides these samples to help demonstrate SDK functionality/implementation. They are provided "as is" and are not official products of Ping Identity Corporation and are not officially supported.

To try out the ForgeRock JavaScript SDK please look at one of our samples:
To try out the Ping SDK for JavaScript please look at one of our samples:

- [**Embedded login - `samples/embedded-login`**](https://github.com/ForgeRock/sdk-sample-apps/blob/main/embedded-login/README.md)

Expand All @@ -69,27 +68,27 @@ To try out the ForgeRock JavaScript SDK please look at one of our samples:

## Documentation

Documentation for the SDKs is provided at **<https://sdks.forgerock.com>**, and includes topics such as:
Documentation for the SDKs is provided at **<https://docs.pingidentity.com/sdks>**, and includes topics such as:

- Introducing the SDK Features
- Preparing AM for use with the SDKS
- Preparing your server for use with the SDKS
- API Reference documentation

<!------------------------------------------------------------------------------------------------------------------------------------>
<!-- SUPPORT -->

## Support

If you encounter any issues, be sure to check our **[Troubleshooting](https://backstage.forgerock.com/knowledge/kb/article/a83789945)** pages.
If you encounter any issues, be sure to check our **[Troubleshooting](https://support.pingidentity.com/s/article/How-do-I-troubleshoot-the-ForgeRock-SDK-for-JavaScript)** pages.

Support tickets can be raised whenever you need our assistance; here are some examples of when it is appropriate to open a ticket (but not limited to):

- Suspected bugs or problems with ForgeRock software.
- Requests for assistance - please look at the **[Documentation](https://sdks.forgerock.com)** and **[Knowledge Base](https://backstage.forgerock.com/knowledge/kb/home/g32324668)** first.
- Requests for assistance - please look at the **[Documentation](https://docs.pingidentity.com/sdks)** and **[Knowledge Base](https://support.pingidentity.com/s/knowledge-base)** first.

You can raise a ticket using **[BackStage](https://backstage.forgerock.com/support/tickets)**, our customer support portal that provides one stop access to ForgeRock services.
You can raise a ticket using the **[Ping Identity Support Portal](https://support.pingidentity.com/s/)** that provides one stop access to support services.

BackStage shows all currently open support tickets and allows you to raise a new one by clicking **New Ticket**.
The support portal shows all currently open support tickets and allows you to raise a new one by clicking **New Ticket**.

## Version History

Expand All @@ -102,16 +101,15 @@ BackStage shows all currently open support tickets and allows you to raise a new

If you would like to contribute to this project you can fork the repository, clone it to your machine and get started.

<!-- Note: Found elsewhere, but is Java-only //-->

Be sure to check out our [Coding Style and Guidelines](https://wikis.forgerock.org/confluence/display/devcom/Coding+Style+and+Guidelines) page.

<!------------------------------------------------------------------------------------------------------------------------------------>
<!-- LEGAL -->

## Disclaimer

> **This code is provided by ForgeRock on an “as is” basis, without warranty of any kind, to the fullest extent permitted by law. ForgeRock does not represent or warrant or make any guarantee regarding the use of this code or the accuracy, timeliness or completeness of any data or information relating to this code, and ForgeRock hereby disclaims all warranties whether express, or implied or statutory, including without limitation the implied warranties of merchantability, fitness for a particular purpose, and any warranty of non-infringement. ForgeRock shall not have any liability arising out of or related to any use, implementation or configuration of this code, including but not limited to use for any commercial purpose. Any action or suit relating to the use of the code may be brought only in the courts of a jurisdiction wherein ForgeRock resides or in which ForgeRock conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions.**
> **This code is provided by Ping Identity Corporation ("Ping") on an "as is" basis, without warranty of any kind, to the fullest extent permitted by law.
> Ping Identity Corporation does not represent or warrant or make any guarantee regarding the use of this code or the accuracy, timeliness or completeness of any data or information relating to this code, and Ping Identity Corporation hereby disclaims all warranties whether express, or implied or statutory, including without limitation the implied warranties of merchantability, fitness for a particular purpose, and any warranty of non-infringement.
> Ping Identity Corporation shall not have any liability arising out of or related to any use, implementation or configuration of this code, including but not limited to use for any commercial purpose.
> Any action or suit relating to the use of the code may be brought only in the courts of a jurisdiction wherein Ping Identity Corporation resides or in which Ping Identity Corporation conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions.**

<!------------------------------------------------------------------------------------------------------------------------------------>
<!-- LICENSE - Links to the MIT LICENSE file in each repo. -->
Expand All @@ -122,6 +120,4 @@ This project is licensed under the MIT License - see the [LICENSE](./packages/ja

---

&copy; Copyright 2020 ForgeRock AS. All Rights Reserved.

[forgerock-logo]: https://www.forgerock.com/themes/custom/forgerock/images/fr-logo-horz-color.svg 'ForgeRock Logo'
&copy; Copyright 2020-2025 Ping Identity. All Rights Reserved
25 changes: 25 additions & 0 deletions contributing_docs/git.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Git

## Standards

We use standard conventional commits for committing to the repository. Your commits will run through a linting process to make sure they are standard.

Please use [Conventional Commit Conventions](https://www.conventionalcommits.org/en/v1.0.0-beta.4/#summary) as a guide for how to commit to the repository.

## Commit Format

Commits should be formatted like so

```bash
<type>(<scope>): <short summary>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```

## Scopes

If your commit is to a specific package, you can include a `scope` in your commit.
This is done as shown above, after the `type` of commit per the Conventional
Commit Standards
97 changes: 97 additions & 0 deletions contributing_docs/releases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Releases

We use changesets to handle publishing of all packages in the repository.
Please see the changesets repository for documentation on how to use
changesets. Below will be a brief summary.

## Adding a changeset

You can run `pnpm changeset` in order to add a changeset. You then
can navigate the UI that it provides.

If you do not add a changeset, this means the code you are trying to merge will _not_:

- Be included in the `changelog` when releases are done.
- trigger the opening of a `Release PR` if one is not open

Be very aware of the type of changeset you are adding, if you want to trigger a
"patch" release, please make sure you are committing a PR with a `patch` changesets.

Changesets are mutable, so you can edit changesets afterwards if need be.

Nothing will be released until the `Release PR` is merged.

## Versioning

Versioning is handled automatically by `changesets` in the CI pipeline.

If you have a feature branch open against `develop`, when your feature,
is merged, `changesets` will open a `PR` from `changesets-release/master`
against `master`.

In this PR, you should be able to see the following:

- the packages that will be released
- the versions that are being updated
- all of the code that has been merged between the last release on
`master` and current time.

## Adding a package to the repository

If you are adding a new package to the repository, you should _ALWAYS_ mark the package
as `private` in the package.json. This will mean that the package _will not_ be published
to `npm` during releases.

When the package is officially ready for release, you should delete
the `private: true` from the `{projectRoot}/package.json`.

The package will still be versioned, if changesets are added to the repository.
It just won't be released.

If you are adding a package that _should_ never be released, you can modify the `ignore`
field in the `.changetsets/config.json`. Doing this will mean `changesets` will
never ask if you are adding a `changeset` for this package (when running `pnpm changeset`).
This is common for `e2e` related applications. We don't version or care
about publishing them. You will see in the `.changesets/config.json` these are listed
in the `ignore` field, and they will all have `private:true` in the package.json

## First time releasing a package

If your package is ready to be released, and has never been released before,
(the package.json `name` field does not exist on `npm`), then it is critical that
your `{packageRoot}/package.json` has the following:

```
"publishConfig": {
"access": true
}
```

If your package does not contain this information, your package publishing **WILL**
break the publish pipeline.

This is because all packages in this repository are published with `npm provenance`.
You can read about the requirements [here](https://docs.npmjs.com/generating-provenance-statements#prerequisites).

## Testing a package publish

In order to test a package publish, you should use `verdaccio`.

We provide verdaccio two ways:

- `pnpm nx run local-registry`. This command will spawn a private npm registry.
It also _should_ update your local `.npmrc` file to point here.

You can then publish your package like so:

```bash
pnpm publish packages/{your_package} --dry-run --registry=http://localhost:4873
```

Notes: - I am including the `dry-run` flag here so if you copy paste it,
you will "dry-run" the publish. - I also like to add the `registry` flag, as a secondary check to
make sure i publish to this registry. - The `-r` flag is necessary if your package requires other workspace packages
to be published. This command runs `publish` recursively via pnpm's
topological graph.

- Publishing to a hosted private registry: Please message @ryanbas21 on slack.
2 changes: 1 addition & 1 deletion e2e/autoscript-apps/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"type": "module",
"dependencies": {
"@forgerock/javascript-sdk": "workspace:*",
"@forgerock/device-client": "workspace:*",
"@forgerock/ping-protect": "workspace:*",
"@reduxjs/toolkit": "catalog:",
"rxjs": "^7.4.0"
},
"description": "apps for e2e on js sdk",
Expand Down
Loading