diff --git a/.gitignore b/.gitignore index b974351ba3..0a76f5bcc5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /build +/bin /.idea /.gradle \ No newline at end of file diff --git a/README.md b/README.md index f975239662..4e6889b03d 100644 --- a/README.md +++ b/README.md @@ -27,21 +27,14 @@ Because the event listener is the source of the SCIM flow, and it is not cancela ## Usage -### Installation +### Installation (quick) -> For now, it's doesn't't work on Quarkus which is the default after version 16.x.x. +1. Download the [latest version](https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package) +2. Put it in `/opt/keycloak/providers/`. -1. Download the [latest version](https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/target/keycloak-scim-1.0-SNAPSHOT-jar-with-dependencies.jar?job=package) -2. Put it in `/opt/jboss/keycloak/standalone/deployments/`. +It's also possible to build your own custom image if you run Keycloak in a [container](/docs/container.md). -It's also possible to build your own custom image if you run keycloak in a container. - -Example: -``` -FROM jboss/keycloak:16.1.1 - -COPY keycloak-scim-1.0-SNAPSHOT-jar-with-dependencies.jar /opt/jboss/keycloak/standalone/deployments/keycloak-scim-1.0-SNAPSHOT.jar -``` +Other [installation options](/docs/installation.md) are available. ### Setup diff --git a/build.gradle b/build.gradle index 92af4ee241..def33a3531 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ dependencies { compileOnly 'org.keycloak:keycloak-server-spi-private:18.0.0' compileOnly 'org.keycloak:keycloak-services:18.0.0' compileOnly 'org.keycloak:keycloak-model-jpa:18.0.0' - implementation 'io.github.resilience4j:resilience4j-retry:1.7.0' + implementation 'io.github.resilience4j:resilience4j-retry:1.7.1' implementation('com.unboundid.product.scim2:scim2-sdk-client:2.3.7') { transitive false } diff --git a/docs/container.md b/docs/container.md new file mode 100644 index 0000000000..086b87f06b --- /dev/null +++ b/docs/container.md @@ -0,0 +1,15 @@ +# Container + +## Quarkus + +``` +FROM quay.io/keycloak/keycloak as builder +RUN curl "https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package" -Lo /opt/keycloak/providers/keycloak-scim-1.0-SNAPSHOT-all.jar +RUN /opt/keycloak/bin/kc.sh build + +FROM quay.io/keycloak/keycloak +COPY --from=builder /opt/keycloak/ /opt/keycloak/ +WORKDIR /opt/keycloak +ENTRYPOINT ["/opt/keycloak/bin/kc.sh"] +CMD ["start"] +``` diff --git a/docs/dependencies.md b/docs/dependencies.md new file mode 100644 index 0000000000..424136e5dc --- /dev/null +++ b/docs/dependencies.md @@ -0,0 +1,14 @@ +# Dependencies + +| Name | Version | Quarkus | Wildfly | Download | +| --- | --- | --- | --- | --- | +| io.github.resilience4j:resilience4j-retry | 1.7.1 | X | X | [link](https://repo1.maven.org/maven2/io/github/resilience4j/resilience4j-retry/1.7.1/resilience4j-retry-1.7.1.jar) | +| io.github.resilience4j:resilience4j-core | 1.7.1 | X | X | [link](https://repo1.maven.org/maven2/io/github/resilience4j/resilience4j-core/1.7.1/resilience4j-core-1.7.1.jar) | +| io.vavr:vavr | 0.10.2 | X | X | [link](https://repo1.maven.org/maven2/io/vavr/vavr/0.10.2/vavr-0.10.2.jar) | +| io.vavr:vavr-match | 0.10.2 | X | X | [link](https://repo1.maven.org/maven2/io/vavr/vavr-match/0.10.2/vavr-match-0.10.2.jar) | +| org.slf4j:slf4j-api | 1.7.30 | X | X | [link](https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar) | +| com.unboundid.product.scim2:scim2-sdk-client | 2.3.7 | X | X | [link](https://repo1.maven.org/maven2/com/unboundid/product/scim2/scim2-sdk-client/2.3.7/scim2-sdk-client-2.3.7.jar) | +| com.unboundid.product.scim2:scim2-sdk-common | 2.3.7 | X | X | [link](https://repo1.maven.org/maven2/com/unboundid/product/scim2/scim2-sdk-common/2.3.7/scim2-sdk-common-2.3.7.jar) | +| org.wildfly.client:wildfly-client-config | 1.0.1.Final | X | | [link](https://repo1.maven.org/maven2/org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar) | +| org.jboss.resteasy:resteasy-client | 4.7.6.Final | X | | [link](https://repo1.maven.org/maven2/org/jboss/resteasy/resteasy-client/4.7.6.Final/resteasy-client-4.7.6.Final.jar) | +| org.jboss.resteasy:resteasy-client-api | 4.7.6.Final | X | | [link](https://repo1.maven.org/maven2/org/jboss/resteasy/resteasy-client-api/4.7.6.Final/resteasy-client-api-4.7.6.Final.jar) | \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000000..c79919c63b --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,21 @@ +# Installation (advanced) + +## 1. Download the jar files + +### All-in-one + +This [package](<(https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package)>) contains the SCIM provider and it's dependencies. It's intended only for Quarkus distribution. + +### Separately + +You'll need the SCIM provider's [package](<(https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT.jar?job=package)>) and each of its [dependencies](dependencies.md). + +## 2. Install the jar files + +### Quarkus + +Copy the downloaded file in `/opt/keycloak/providers/`. For production use, build Keycloak before starting it. + +### Wildfly (legacy) + +Copy the downloaded file in `/opt/jboss/keycloak/standalone/deployments/`.