{"id":20307262,"url":"https://github.com/oktadev/okta-spring-jx-example","last_synced_at":"2025-04-11T15:10:22.560Z","repository":{"id":38813523,"uuid":"140531528","full_name":"oktadev/okta-spring-jx-example","owner":"oktadev","description":"CI/CD for Spring Boot with Jenkins X and Kubernetes","archived":false,"fork":false,"pushed_at":"2023-02-28T00:31:27.000Z","size":1320,"stargazers_count":13,"open_issues_count":5,"forks_count":10,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-25T11:11:35.311Z","etag":null,"topics":["cd","ci","ci-cd","continuous-delivery","continuous-integration","google-cloud","jenkins","jenkins-x","kubernetes","spring-boot"],"latest_commit_sha":null,"homepage":"https://developer.okta.com/blog/2018/07/11/ci-cd-spring-boot-jenkins-x-kubernetes","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oktadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-11T06:29:47.000Z","updated_at":"2023-08-08T07:52:16.000Z","dependencies_parsed_at":"2022-09-18T11:40:14.231Z","dependency_job_id":null,"html_url":"https://github.com/oktadev/okta-spring-jx-example","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oktadev%2Fokta-spring-jx-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oktadev%2Fokta-spring-jx-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oktadev%2Fokta-spring-jx-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oktadev%2Fokta-spring-jx-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oktadev","download_url":"https://codeload.github.com/oktadev/okta-spring-jx-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248429105,"owners_count":21101783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cd","ci","ci-cd","continuous-delivery","continuous-integration","google-cloud","jenkins","jenkins-x","kubernetes","spring-boot"],"created_at":"2024-11-14T17:16:57.987Z","updated_at":"2025-04-11T15:10:22.538Z","avatar_url":"https://github.com/oktadev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CI/CD for Spring Boot with Jenkins X and Kubernetes\n \nThis example app shows how to CI/CD a [Spring Boot](https://spring.io/projects/spring-boot) and [Ionic](https://ionicframework.com/) PWA using [Jenkins X](https://jenkins-x.io) and [Kubernetes](https://kubernetes.io/).\n\n\u003ca href=\"https://jenkins-x.io\"\u003e\u003cimg src=\"static/jenkins-x.svg\" alt=\"Jenkins X\" width=\"150\"\u003e\u003c/a\u003e\n\nPlease read [Add CI/CD to Your Spring Boot App with Jenkins X and Kubernetes](https://developer.okta.com/blog/2018/07/11/ci-cd-spring-boot-jenkins-x-kubernetes) to learn how to continuously test and deploy this application using Jenkins X.\n\n**Prerequisites:** [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) and [Node.js](https://nodejs.org/).\n\n\u003e [Okta](https://developer.okta.com/) has Authentication and User Management APIs that reduce development time with instant-on, scalable user infrastructure. Okta's intuitive API and expert support make it easy for developers to authenticate, manage, and secure users and roles in any application.\n\n* [Getting Started](#getting-started)\n* [Links](#links)\n* [Help](#help)\n* [License](#license)\n\n## Getting Started\n\nTo install this example application, run the following commands:\n\n```bash\ngit clone https://github.com/oktadeveloper/okta-spring-jx-example.git okta-jenkinsx\ncd okta-jenkinsx\n```\n\nThis will get a copy of the project installed locally. To install all of its dependencies and start each app, follow the instructions below.\n\nTo run the server, cd into the `holdings-api` directory and run:\n \n```bash\n./mvnw spring-boot:run\n```\n\nTo run the client, cd into the `crypto-pwa` directory and run:\n \n```bash\nnpm install -g ionic\nnpm i \u0026\u0026 ionic serve\n```\n\nTo package everything into a single JAR for deployment, run the following command in the `holdings-api` directory.\n\n```bash\n./mvnw package -Pprod\n```\n\nYou can also run all the end-to-end tests using a similar technique.\n\n```bash\n./mvnw package -Pprod,e2e\n```\n\n### Setup Okta\n\nThe first thing you’ll need to do is add a `holdings` attribute to your organization’s user profiles. Log in to the Okta Developer Console, then navigate to **Users** \u003e **Profile Editor**. Click on **Profile** for the first profile in the table. You can identify it by its Okta logo. Click **Add Attribute** and use the following values:\n\n* Display name: `Holdings`\n* Variable name: `holdings`\n* Description: `Cryptocurrency Holdings`\n\nYou will need to [create an API Token and OIDC App](https://developer.okta.com/blog/2018/01/23/replace-local-storage-with-okta-profile-attributes#create-an-api-token) to get your values to perform authentication. \n\nLog in to your Okta Developer account (or [sign up](https://developer.okta.com/signup/) if you don’t have an account) and navigate to **Applications** \u003e **Add Application**. Click **Web**, click **Next**, and give the app a name you’ll remember. Click **Done**. You'll need the client ID and client secret on the resulting screen below.\n\nFor the Okta Java SDK to talk to Okta’s API, you’ll need to create an API token. The abbreviated steps are as follows:\n\n1. Log in to your Developer Console\n2. Navigate to **API** \u003e **Tokens** and click **Create Token**\n3. Give your token a name, then copy its value\n\n#### Okta App Configuration\n\nOpen `holdings-api/src/main/resources/application.yml` and add your API token as a property. While you're there, set the `issuer` and `clientId` to match your OIDC application.\n\n**NOTE:** The value of `{yourOktaDomain}` should be something like `dev-123456.oktapreview.com`. Make sure you don't include `-admin` in the value!\n\n```properties\nokta:\n  client:\n    orgUrl: https://{yourOktaDomain}\n    token: XXX\nsecurity:\n    oauth2:\n        client:\n            access-token-uri: https://{yourOktaDomain}om/oauth2/default/v1/token\n            user-authorization-uri: https://{yourOktaDomain}/oauth2/default/v1/authorize\n            client-id: {yourClientId}\n            client-secret: {yourClientSecret}\n            scope: openid profile email\n        resource:\n            user-info-uri: https://{yourOktaDomain}/oauth2/default/v1/userinfo\n```\n\n## Links\n\nThis example uses the following libraries provided by Okta:\n\n* [Okta Spring Boot Starter](https://github.com/okta/okta-spring-boot)\n* [Okta Auth SDK](https://github.com/okta/okta-auth-js)\n\n## Help\n\nPlease post any questions as comments on the [blog post](https://developer.okta.com/blog/2018/07/11/ci-cd-spring-boot-jenkins-x-kubernetes), or visit our [Okta Developer Forums](https://devforum.okta.com/). You can also email developers@okta.com if you would like to create a support ticket.\n\n## License\n\nApache 2.0, see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foktadev%2Fokta-spring-jx-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foktadev%2Fokta-spring-jx-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foktadev%2Fokta-spring-jx-example/lists"}