This repository aggregates the result of end-to-end test between the new components and stable components.
We now support manual integration testing that allows developers to trigger custom integration tests with specific component versions. This feature enables:
- Custom Version Combinations: Test any combination of component versions
- Compatibility Validation: Verify cross-component compatibility
- Regression Testing: Ensure existing functionality works with new versions
- Historical Tracking: Maintain a compatibility matrix over time
Via GitHub Actions (Recommended):
- Go to Actions β Manual Integration Tests
- Click "Run workflow"
- Select components and enter versions
- Run the test
Via CLI:
# Auto-detected as "sdk" mode (1 SDK)
npm run manual -- --sdk-ts v1.0.0
# Auto-detected as "all" mode (3 SDKs)
npm run manual -- --sdk-ts v1.0.0 --sdk-swift v2.1.0 --sdk-kmp v0.5.0| Flow | sdk-ts | sdk-swift | sdk-kmp |
|---|---|---|---|
| Backup and restorations | βοΈ | βοΈ | β |
| Estabilish connection | βοΈ | βοΈ | β |
| Receive issued JWT credential | βοΈ | βοΈ | β |
| Receive issued SD-JWT credential | βοΈ | βοΈ | β |
| Receive issued AnonCreds credential | βοΈ | βοΈ | β |
| Provide JWT proof | βοΈ | βοΈ | β |
| Provide SD-JWT proof | βοΈ | βοΈ | β |
| Provide AnonCreds proof | βοΈ | βοΈ | β |
| Receive JWT revocation notification | βοΈ | βοΈ | β |
| Verify JWT proof | βοΈ | βοΈ | β |
| Verify SD-JWT proof | βοΈ | βοΈ | β |
| Verify AnonCreds proof | βοΈ | βοΈ | β |
| Receive out-of-band JWT credential | βοΈ | β | |
| Provide out-of-band JWT proof | βοΈ | β |
Note: The Kotlin SDK (sdk-kmp) is currently broken and non-functional. Tests are skipped with clear warnings. See PLAN.md for details on the improvement roadmap.
| Method | Endpoint | Description | Covered |
|---|
npm ci
npx tsx cli --component {component} --runner {runner}Copy the example environment file and configure the required variables:
cp .env.example .env
# Edit .env with your configurationRequired Environment Variables:
GH_TOKEN: GitHub token with repository access
Optional Environment Variables:
SLACK_WEBHOOK: Slack webhook URL for notificationsDEBUG: Set totruefor detailed command output
See .env.example for detailed configuration options.
Identus components are:
The runners are the SDKs themselves, which runs the end-to-end tests in order to guarantee the platform compatibility.
- sdk-ts
- sdk-kmp
- sdk-swift
The following table describes the artifact versioning and testing for the integration
| component | cloud-agent | mediator | sdk-ts | sdk-kmp | sdk-swift |
|---|---|---|---|---|---|
| cloud-agent | main | release | release | release | release |
| mediator | release | main | release | release | release |
| sdk-ts | release | release | main | - | - |
| sdk-kmp | release | release | - | main | - |
| sdk-swift | release | release | - | - | main |
- main: latest changes
- release: latest stable version
In order to test all latest components there's a weekly job.
| environment | cloud-agent | mediator | sdk-ts | sdk-kmp | sdk-swift |
|---|---|---|---|---|---|
| weekly | main | main | main | main | main |
When there's an expected breaking change the components will have to be compatible before making a final release. That means the latest test should be green.
sequenceDiagram
participant service
participant ci
participant runners
service->>ci: version
Note over ci: start services<br>using new service version
ci->>runners: run sdk-ts
ci->>runners: run sdk-kmp
ci->>runners: run sdk-swift
runners-->>ci: results
ci-->>ci: notify slack
ci-->>ci: update service report on gh pages
sequenceDiagram
participant library
participant ci
library->>ci: notify change
Note over ci: start released service<br>build library
ci->>library: run test
library-->>ci: results
ci-->>ci: notify slack
ci-->>ci: update library report on gh pages
This event is dispatched when there's a new commit on main branch.
{
"component": "<component>",
"version": "<version>"
}Component should be of of the list and version for services should've been published or a tag/branch for libraries.