Giter VIP home page Giter VIP logo

idam-web-public's Introduction

IdAM Web Public

IdAM Web Public is a Spring Boot web application that provides the public facing UI for Reform IdAM. This includes: login and sign-up page, page for requesting password reset.

Getting started

Prerequisites

Building

The project uses Gradle as a build tool but you don't have install it locally since there is a ./gradlew wrapper script.

To build project please execute the following command:

$ ./gradlew build

Developing

Unit tests

To run all unit tests please execute the following command:

$ ./gradlew test

Coding style tests

To run all checks (including unit tests) please execute the following command:

$ ./gradlew check

Docker

Required tools for macOS

  • docker (homebrew cask)

Build

docker build -t hmcts/idam-web-public:<tag> .

Run Interactively

# Running a temporary container?
docker run --rm -it -e STRATEGIC_SERVICE_URL=http://<local-idam-api-hostname> --entrypoint /bin/sh hmcts/idam-web-public:<tag>
# Is the container already running?
docker exec -it <hmcts/idam-web-public:<tag> /bin/sh

Run as Daemon

See the webapps docker-compose.yml file. Docker compose expects the image to tag to be local.

docker-compose up

Docker Compose Notes

Expected error: Access denied. ForgeRock connection is not yet implemented. Please use the following URI to obtain the the security code page.

http://localhost:18002/login/pin?client_id=tstsrv456&redirect_uri=http://localhost:8084/ui/login

AKS Troubleshooting Mode

Use the /configprops & /env endpoints to learn more about the target configuration. To bypass sanitisation, use either of the implemtations below.

# application.yaml
management:
  security:
    enabled: false
  endpoint:
    configprops:
      keys-to-sanitize:
        - nothing
    env:
     keys-to-sanitize:
        - nothing
  endpoints:
    web:
      base-path: /
      exposure:
        include: health,info,configprops,env
    ...

# values.yaml
  ...
  environment:
    MANAGEMENT_ENDPOINT_CONFIGPROPS_KEYS-TO-SANITIZE_0: nothing
    MANAGEMENT_ENDPOINT_ENV_KEYS-TO-SANITIZE_0: nothing
    MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: health,info,configprops,env
  ...

# K8s manifest
        - name: MANAGEMENT_ENDPOINT_CONFIGPROPS_KEYS-TO-SANITIZE_0
          value: nothing
        - name: MANAGEMENT_ENDPOINT_ENV_KEYS-TO-SANITIZE_0
          value: nothing
        - name: MANAMANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE
          value: health,info,configprops,env

Pipeline Overrides

You can add similar callbacks to the below to override the environment values and set testing variables.

withPipeline(type, product, component) {
  ...
  before('smoketest:idam-preview') {
    env.PREVIEW_ENVIRONMENT_NAME = 'preview'   
    env.NONPROD_ENVIRONMENT_NAME = 'aat'
    env.PUBLIC_URL = 'https://idam-web-public-pr-207.service.core-compute-preview.internal'
    println """Using PREVIEW_ENVIRONMENT_NAME: ${env.PREVIEW_ENVIRONMENT_NAME}
               Using NONPROD_ENVIRONMENT_NAME: ${env.NONPROD_ENVIRONMENT_NAME}
               Using PUBLIC_URL: ${env.PUBLIC_URL}""".stripIndent()
  }
  ...
}

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Functional test reports

functional-output folder required to generate the reports, so the folder with the test file created as empty folder is not allowed to push to git.

idam-web-public's People

Contributors

abbasitahir avatar amiramido avatar arun-hmcts avatar blucas avatar chandkanuri avatar dfourn avatar henrydobson avatar ivano-amido avatar jburke-idam avatar jitumiah avatar kiankwa avatar kremi avatar matteoformica-merapar avatar mokainos avatar nikola-naydenov-hmcts avatar nikolanaydenov avatar shravanmechineni avatar simonalongaroni avatar slonga avatar steveclewer avatar sudhasane avatar tbamido avatar timja avatar verityit avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idam-web-public's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • Update dependency com.github.hmcts:fortify-client to v1.4.2
  • Update dependency com.google.guava:guava to v33.2.1-jre
  • Update dependency gradle to v8.8

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
Dockerfile
  • hmctspublic.azurecr.io/base/java 21-distroless
gradle
settings.gradle
build.gradle
  • org.bouncycastle:bcprov-jdk18on 1.78.1
  • org.bouncycastle:bcpkix-jdk18on 1.78.1
  • org.bouncycastle:bcutil-jdk18on 1.78.1
  • com.squareup.okio:okio 3.9.0
  • org.springframework.session:spring-session-data-redis 2.7.4
  • org.springframework.data:spring-data-redis 2.6.4
  • org.springframework.cloud:spring-cloud-starter-netflix-zuul 2.2.10.RELEASE
  • com.netflix.servo:servo-core 0.13.2
  • com.nimbusds:nimbus-jose-jwt 9.39.3
  • org.apache.tomcat.embed:tomcat-embed-jasper 9.0.89
  • org.apache.tomcat.embed:tomcat-embed-core 9.0.89
  • org.apache.tomcat.embed:tomcat-embed-websocket 10.1.24
  • org.pitest:pitest 1.16.1
  • info.solidsoft.gradle.pitest:gradle-pitest-plugin 1.15.0
  • org.owasp.encoder:encoder-jsp 1.2.3
  • org.codehaus.sonar-plugins:sonar-pitest-plugin 0.5
  • com.github.hmcts:fortify-client 1.4.1
  • pl.pragmatists:JUnitParams 1.1.1
gradle/jira.gradle
  • com.atlassian.jira:jira-rest-java-client-app 5.2.7
gradle/libs.versions.toml
  • com.github.hmcts.java-logging:logging 6.1.4
  • commons-fileupload:commons-fileupload 1.5
  • commons-io:commons-io 2.16.1
  • org.apache.commons:commons-text 1.12.0
  • io.github.openfeign:feign-jackson 13.2.1
  • io.github.openfeign:feign-okhttp 13.2.1
  • com.google.code.findbugs:jsr305 3.0.2
  • com.google.guava:guava 33.2.0-jre
  • com.github.hmcts:idam-api-spec 4.0.8
  • org.yaml:snakeyaml 2.2
  • org.springframework.cloud:spring-cloud-starter-openfeign 3.1.9
  • me.champeau.jmh 0.7.2
  • io.spring.dependency-management 1.1.5
  • org.springframework.boot 2.7.18
  • org.owasp.dependencycheck 9.2.0
  • org.sonarqube 5.0.0.4638
  • info.solidsoft.pitest 1.15.0
  • com.gorylenko.gradle-git-properties 2.4.2
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
helm-values
charts/idam-web-public/values.yaml
helmv3
charts/idam-web-public/Chart.yaml
  • java ~5.2.0
npm
package.json
  • chai ^4.4.1
  • codeceptjs ^3.0.4
  • electron ^30.0.0
  • deep-equal-in-any-order ^2.0.0
  • jwt-decode ^3.1.2
  • mocha-junit-reporter ^2.0.0
  • mocha-multi ^1.1.3
  • mochawesome ^7.0.0
  • nightmare ^3.0.2
  • node-fetch ^2.6.1
  • notifications-node-client ^8.0.0
  • pa11y ^8.0.0
  • proxy-agent ^6.0.0
  • puppeteer ^21.5.2
  • webdriverio ^8.0.0
  • html_codesniffer ^2.5.1
  • node >=12.20.0
  • electron ^30.0.0
regex
Dockerfile
  • microsoft/ApplicationInsights-Java 3.5.2

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.