Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions content/configuration/tenant_client_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ config:
method: "post",
body: { user: credentials.username, password: md5(credentials.password) }
}).then((result) => {
console.log("User Login", credentials.username, r.code);
console.log("User Login", credentials.username, result.status);
if(result.status === 200){
this.isLoggedIn = true;
this.profile = result.body;
Expand All @@ -98,7 +98,7 @@ config:
method: "post",
body: { user: args.username }
}).then((result) => {
console.log("User Validation", args.username, r.code);
console.log("User Validation", args.username, result.status);
if(result.status === 200){
this.isValid = true;
return commit(this.isValid);
Expand Down Expand Up @@ -175,7 +175,7 @@ spec:

| Property | Mandatory | Default | Example | Discussion |
|-------------------|-----------|---------|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| name | yes | - | `bbnc` | The name of the tenant depends to your architectural discussions. Consider creating tenants for different brands or companies or teams inside your company. Remember: tenants are seperated spaces inside one instance. |
| name | yes | - | `bbnc` | The name of the tenant depends on your architectural decisions. Consider creating tenants for different brands, companies, or teams within your organization. Remember: tenants are separated spaces within a single instance. |
| hosts | yes | - | `["bnbc.example", "us.bnbc.example"]` | A concrete list of hosts for which the server serves the tenant. Overlapping hosts in different tenants are not allowed, they have to be unique. Be sure that the hosts are configured as ingress hosts too. |
| interceptor | no | | | _see the full example above_ |
| interceptor.enabled | yes | | | Can be set to `false` if the tenant should not support the [Interceptor-Mode](/interceptor/interceptor). |
Expand Down Expand Up @@ -233,7 +233,7 @@ config:
secret: aejochiecaishee4ootooSh3ph
```

> Remember. For Kubernetes warp name into `metadata` and rename `config` to `spec`:
> Remember: For Kubernetes, wrap the name in `metadata` and rename `config` to `spec`:

```yaml
metadata:
Expand Down Expand Up @@ -278,7 +278,7 @@ spec:
| Property | Mandatory | Default | Example | Discussion |
|---------------|-----------|-----------------------------------------|---------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ident | yes | A random UUID | `58392627-0121-4721-9DAC-D358BDD86CA6` | The ident is the internal primary key for that client. |
| name | yes | - | `bnbc-ios-app` | Give the client a unique and specific name. Client should be reelect the device classes that you do need to target with specific rights and get individual statistics from. |
| name | yes | - | `bnbc-ios-app` | Give the client a unique and specific name. Clients should reflect the device classes that you need to target with specific rights and to get individual statistics from. |
| tenantname | yes | - | `bnbc-tenant` | The name of the tenant for which this client is for. On kubernetes this must contain the tenants namespace: `[tennant namespace]/bnbc-tenant` |
| redirect_urls | yes | - | `["https://www.bnbc.(example|example.com)/bnbc-club/*"]` | A client sends a redirect url to which the response will be redirected to. Specify the allowed urls for security reasons, otherwise it will be possible to hijack the token in the response. See information below. |
| grant_types | no | ["authorization_code", "refresh_token"] | `["password"]` | A list of allowed grant types. If not set, a default set will be applied: `authorization_code`, `refresh_token`. If you need to support the “password" grant, you must specify it explicitly! |
Expand Down Expand Up @@ -316,4 +316,4 @@ applications that run on a server controlled by developers and whose source code
applications are considered public clients. Since anyone running a Javascript application can easily see the source
code of the application, a secret would be easily visible there.

Set a secret for server-side applications where the user does not have access to the source code.
Set a secret for server-side applications where users cannot access the source code.
77 changes: 77 additions & 0 deletions content/contribution/tooling.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,54 @@ test suites. After the test a coverage reports is generated.
./tooling.sh test
```

#### Filtering Unit Tests

You can filter unit tests to run only specific test targets, suites, or individual tests by passing a filter argument directly after the `test` command:

```shell
# Run all tests in a specific target
./tooling.sh test <filter>

# Examples:
./tooling.sh test ServerTests # Run all ServerTests
./tooling.sh test LoggerTests # Run all LoggerTests
./tooling.sh test Uitsmijter-AuthServerTests # Run all Uitsmijter-AuthServerTests
```

**Dash vs Underscore Automatic Conversion:**

Swift test automatically converts target names containing dashes (`-`) to underscores (`_`) in test identifiers. The tooling automatically handles this conversion, so you can use either format:

```bash
# Both work (dashes are automatically converted to underscores)
./tooling.sh test Uitsmijter-AuthServerTests
./tooling.sh test Uitsmijter_AuthServerTests
```

**Advanced Filtering:**

You can also filter by suite name or individual test:

```bash
# Filter by suite
./tooling.sh test "ServerTests.AppTests"

# Filter by specific test
./tooling.sh test "ServerTests.AppTests/testHelloWorld"
```

The test script shows debug output when a filter is applied:

```
Test filter: --filter Uitsmijter_AuthServerTests
```

Or when no filter is set:

```
No test filter set - running all tests
```

### e2e

Besides the bespoken UnitTests, `e2e` runs end-to-end tests which can be found as shell scripts in `/Tests/e2e/`.
Expand Down Expand Up @@ -192,6 +240,35 @@ option `--dirty` to the command.
> Do never ever use a --dirty flag in a CI! The safety of a fresh (non cached) release is always more important than
> saving CI-hours. Use `--dirty` in your own workflow only.

#### Filtering E2E Tests

You can filter e2e tests to run only specific test scenarios using the `--filter` flag with a test name pattern. The e2e tests use [🔗 Playwright](https://playwright.dev/) and support filtering by test description:

```shell
# Filter e2e tests by pattern
./tooling.sh e2e --filter "<pattern>"

# Examples:
./tooling.sh e2e --filter "should respond with error"
./tooling.sh e2e --filter "login"
./tooling.sh e2e --filter "OAuth"
```

You can combine the `--filter` flag with other options:

```bash
# Run filtered tests with dirty build (faster development)
./tooling.sh e2e --dirty --filter "login"

# Run filtered tests with fast mode (single browser)
./tooling.sh e2e --fast --filter "should respond with error"

# Combine all options
./tooling.sh e2e --dirty --fast --filter "OAuth"
```

The filter pattern is passed to Playwright's `--grep` option, which matches against test descriptions using regular expressions.

### run

Start the Uitsmijter server localy for testing in a docker environment. It can be reached at http://localhost:8080. The
Expand Down
26 changes: 13 additions & 13 deletions content/general/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ weight: 1

Uitsmijter is a versatile OAuth2 authorization server and a Kubernetes Middleware for Traefik.

On one side it provides a flexible and powerful basis for new projects, on the other hand it has been built with the
focus to comfortably bring existing, mostly monolithic applications into the microservice, cloud- and multi-cloud world.
On one hand, it provides a flexible and powerful basis for new projects; on the other hand, it has been built with the
focus of comfortably bringing existing, mostly monolithic applications into the microservice, cloud, and multi-cloud world.

It offers multi-tenant single sign-on via secure, low-maintenance and easy-to-implement middleware, as well as
It offers multi-tenant single sign-on via secure, low-maintenance, and easy-to-implement middleware, as well as
protocol-compliant OAuth 2.0 authorization workflows. Both processes work hand in hand and, after minimal and
easy-to-understand configuration in a short time after foolproof and fully automated (Infrastructure As Code)
easy-to-understand configuration, can be operational in a short time following foolproof and fully automated (Infrastructure as Code)
installation.

A company-wide login can be put into operation within the shortest possible time in a vendor-neutral manner and without
data specifications on your user profiles, even without changing the user database. It is important that your data
contents and data structures as well as the data management can be determined by you at any time.
A company-wide login can be put into operation in the shortest possible time in a vendor-neutral manner without
data specifications for your user profiles, and even without changing the user database. It is important that your data
content, data structures, and data management can be determined by you at any time.

Uitsmijter does not bring its own user data storage, but offers interfaces to use your
existing databases and services in a simple, secure and elegant way.
Uitsmijter does not provide its own user data storage but offers interfaces to use your
existing databases and services in a simple, secure, and elegant way.

Read more [about our motivation](/general/motivation) for Uitsmijter

Expand All @@ -36,10 +36,10 @@ In addition to RFC 6749, there are several other RFCs that define specific aspec
example, [RFC 6750](https://www.rfc-editor.org/rfc/rfc6750.html) defines the Bearer Token usage, which specifies how to
use access tokens in HTTP requests.

All information you need to install, configure, run the server, as well as configuring the client libraries are covered
in this documentation. Our goal is to present you everything you need in an understandable language. If you are missing
some aspects, please do not hesitate to [contact us](mailto:sales@uitsmijter.io). We are improving the documentation
constantly. Your feedback is welcome.
All information you need to install, configure, and run the server, as well as configure the client libraries, is covered
in this documentation. Our goal is to present everything you need in an understandable language. If you find
some aspects are missing, please do not hesitate to [contact us](mailto:sales@uitsmijter.io). We are continuously improving the documentation.
Your feedback is welcome.

## Further readings

Expand Down
Loading