├── .env ├── .github ├── FUNDING.yml ├── tag-changelog-config.js └── workflows │ └── release.yml ├── .gitignore ├── LICENSE ├── README.md ├── doc └── images │ ├── kafka-kc-admin-events.png │ ├── kc-admin-events.png │ ├── legacy-solution-architecture.png │ ├── openfga-authz-model.png │ ├── openfga-kc-authz-model.png │ ├── openfga-tuples.png │ ├── solution-architecture.png │ ├── tc-2-publish-product-success.png │ ├── tc-2-view-products-success.png │ ├── tc-3-view-products-denied.png │ ├── tc-store-login.png │ ├── tc1-publish-product-denied.png │ ├── tc1-view-products-success.png │ ├── users.png │ └── workshop-docker-environment.png ├── docker-compose-apps.yml ├── docker-compose-import.yml ├── docker-compose-openfga.yml ├── docker-compose.yml ├── kafka-integration ├── README.md ├── docker-compose-kafka.yml └── kafka-consumer-openfga │ ├── .dockerignore │ ├── Dockerfile │ ├── package.json │ └── src │ └── consumer.js ├── keycloak ├── import.sh └── lib │ ├── keycloak-openfga-event-listener-2.0.0.jar │ ├── keycloak-openfga-event-publisher-1.0.0.jar │ └── keycloak-openfga-event-publisher.jar ├── openfga ├── model.dsl └── store.json ├── store-api ├── .gitignore ├── Dockerfile ├── openapi.yml ├── package-lock.json ├── package.json └── src │ ├── controllers │ └── products.controller.js │ ├── data.js │ ├── routes │ ├── index.route.js │ └── products.route.js │ ├── server.js │ └── services │ └── products.service.js ├── store-authz-gateway ├── config.yml └── routes.yml ├── store-oidc-app ├── .gitignore ├── Dockerfile ├── babel.config.js ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── login.png ├── src │ ├── App.vue │ ├── main.js │ ├── oidc │ │ └── oidc-client.js │ ├── plugins │ │ └── vuetify.js │ ├── router │ │ └── router.js │ ├── store │ │ ├── index.js │ │ └── modules │ │ │ └── auth.js │ └── views │ │ ├── Callback.vue │ │ ├── Home.vue │ │ └── Login.vue └── vue.config.js └── store-openfga-api ├── Dockerfile ├── package.json └── src ├── config ├── jwt.config.js └── openfga.config.js ├── controllers └── products.controller.js ├── data.js ├── middlewares ├── jwt.js └── openfga.js ├── routes ├── index.route.js └── products.route.js ├── server.js └── services └── products.service.js /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/.env -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://www.paypal.me/embesozzi -------------------------------------------------------------------------------- /.github/tag-changelog-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/.github/tag-changelog-config.js -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/README.md -------------------------------------------------------------------------------- /doc/images/kafka-kc-admin-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/kafka-kc-admin-events.png -------------------------------------------------------------------------------- /doc/images/kc-admin-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/kc-admin-events.png -------------------------------------------------------------------------------- /doc/images/legacy-solution-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/legacy-solution-architecture.png -------------------------------------------------------------------------------- /doc/images/openfga-authz-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/openfga-authz-model.png -------------------------------------------------------------------------------- /doc/images/openfga-kc-authz-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/openfga-kc-authz-model.png -------------------------------------------------------------------------------- /doc/images/openfga-tuples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/openfga-tuples.png -------------------------------------------------------------------------------- /doc/images/solution-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/solution-architecture.png -------------------------------------------------------------------------------- /doc/images/tc-2-publish-product-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc-2-publish-product-success.png -------------------------------------------------------------------------------- /doc/images/tc-2-view-products-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc-2-view-products-success.png -------------------------------------------------------------------------------- /doc/images/tc-3-view-products-denied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc-3-view-products-denied.png -------------------------------------------------------------------------------- /doc/images/tc-store-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc-store-login.png -------------------------------------------------------------------------------- /doc/images/tc1-publish-product-denied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc1-publish-product-denied.png -------------------------------------------------------------------------------- /doc/images/tc1-view-products-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/tc1-view-products-success.png -------------------------------------------------------------------------------- /doc/images/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/users.png -------------------------------------------------------------------------------- /doc/images/workshop-docker-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/doc/images/workshop-docker-environment.png -------------------------------------------------------------------------------- /docker-compose-apps.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/docker-compose-apps.yml -------------------------------------------------------------------------------- /docker-compose-import.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/docker-compose-import.yml -------------------------------------------------------------------------------- /docker-compose-openfga.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/docker-compose-openfga.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /kafka-integration/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/README.md -------------------------------------------------------------------------------- /kafka-integration/docker-compose-kafka.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/docker-compose-kafka.yml -------------------------------------------------------------------------------- /kafka-integration/kafka-consumer-openfga/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/kafka-consumer-openfga/.dockerignore -------------------------------------------------------------------------------- /kafka-integration/kafka-consumer-openfga/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/kafka-consumer-openfga/Dockerfile -------------------------------------------------------------------------------- /kafka-integration/kafka-consumer-openfga/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/kafka-consumer-openfga/package.json -------------------------------------------------------------------------------- /kafka-integration/kafka-consumer-openfga/src/consumer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/kafka-integration/kafka-consumer-openfga/src/consumer.js -------------------------------------------------------------------------------- /keycloak/import.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/keycloak/import.sh -------------------------------------------------------------------------------- /keycloak/lib/keycloak-openfga-event-listener-2.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/keycloak/lib/keycloak-openfga-event-listener-2.0.0.jar -------------------------------------------------------------------------------- /keycloak/lib/keycloak-openfga-event-publisher-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/keycloak/lib/keycloak-openfga-event-publisher-1.0.0.jar -------------------------------------------------------------------------------- /keycloak/lib/keycloak-openfga-event-publisher.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/keycloak/lib/keycloak-openfga-event-publisher.jar -------------------------------------------------------------------------------- /openfga/model.dsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/openfga/model.dsl -------------------------------------------------------------------------------- /openfga/store.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/openfga/store.json -------------------------------------------------------------------------------- /store-api/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store -------------------------------------------------------------------------------- /store-api/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/Dockerfile -------------------------------------------------------------------------------- /store-api/openapi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/openapi.yml -------------------------------------------------------------------------------- /store-api/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/package-lock.json -------------------------------------------------------------------------------- /store-api/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/package.json -------------------------------------------------------------------------------- /store-api/src/controllers/products.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/controllers/products.controller.js -------------------------------------------------------------------------------- /store-api/src/data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/data.js -------------------------------------------------------------------------------- /store-api/src/routes/index.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/routes/index.route.js -------------------------------------------------------------------------------- /store-api/src/routes/products.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/routes/products.route.js -------------------------------------------------------------------------------- /store-api/src/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/server.js -------------------------------------------------------------------------------- /store-api/src/services/products.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-api/src/services/products.service.js -------------------------------------------------------------------------------- /store-authz-gateway/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-authz-gateway/config.yml -------------------------------------------------------------------------------- /store-authz-gateway/routes.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-authz-gateway/routes.yml -------------------------------------------------------------------------------- /store-oidc-app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /store-oidc-app/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/Dockerfile -------------------------------------------------------------------------------- /store-oidc-app/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/babel.config.js -------------------------------------------------------------------------------- /store-oidc-app/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/package-lock.json -------------------------------------------------------------------------------- /store-oidc-app/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/package.json -------------------------------------------------------------------------------- /store-oidc-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/public/favicon.ico -------------------------------------------------------------------------------- /store-oidc-app/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/public/index.html -------------------------------------------------------------------------------- /store-oidc-app/public/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/public/login.png -------------------------------------------------------------------------------- /store-oidc-app/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/App.vue -------------------------------------------------------------------------------- /store-oidc-app/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/main.js -------------------------------------------------------------------------------- /store-oidc-app/src/oidc/oidc-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/oidc/oidc-client.js -------------------------------------------------------------------------------- /store-oidc-app/src/plugins/vuetify.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/plugins/vuetify.js -------------------------------------------------------------------------------- /store-oidc-app/src/router/router.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/router/router.js -------------------------------------------------------------------------------- /store-oidc-app/src/store/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/store/index.js -------------------------------------------------------------------------------- /store-oidc-app/src/store/modules/auth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/store/modules/auth.js -------------------------------------------------------------------------------- /store-oidc-app/src/views/Callback.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/views/Callback.vue -------------------------------------------------------------------------------- /store-oidc-app/src/views/Home.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/views/Home.vue -------------------------------------------------------------------------------- /store-oidc-app/src/views/Login.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/src/views/Login.vue -------------------------------------------------------------------------------- /store-oidc-app/vue.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-oidc-app/vue.config.js -------------------------------------------------------------------------------- /store-openfga-api/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/Dockerfile -------------------------------------------------------------------------------- /store-openfga-api/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/package.json -------------------------------------------------------------------------------- /store-openfga-api/src/config/jwt.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/config/jwt.config.js -------------------------------------------------------------------------------- /store-openfga-api/src/config/openfga.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/config/openfga.config.js -------------------------------------------------------------------------------- /store-openfga-api/src/controllers/products.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/controllers/products.controller.js -------------------------------------------------------------------------------- /store-openfga-api/src/data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/data.js -------------------------------------------------------------------------------- /store-openfga-api/src/middlewares/jwt.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/middlewares/jwt.js -------------------------------------------------------------------------------- /store-openfga-api/src/middlewares/openfga.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/middlewares/openfga.js -------------------------------------------------------------------------------- /store-openfga-api/src/routes/index.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/routes/index.route.js -------------------------------------------------------------------------------- /store-openfga-api/src/routes/products.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/routes/products.route.js -------------------------------------------------------------------------------- /store-openfga-api/src/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/server.js -------------------------------------------------------------------------------- /store-openfga-api/src/services/products.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/embesozzi/keycloak-openfga-workshop/HEAD/store-openfga-api/src/services/products.service.js --------------------------------------------------------------------------------