{"id":42549615,"url":"https://github.com/jeffersonlab/srm","last_synced_at":"2026-01-28T19:02:44.423Z","repository":{"id":114229928,"uuid":"591008287","full_name":"JeffersonLab/srm","owner":"JeffersonLab","description":"System readiness manager app","archived":false,"fork":false,"pushed_at":"2026-01-20T21:37:10.000Z","size":2082,"stargazers_count":0,"open_issues_count":14,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-21T07:10:57.813Z","etag":null,"topics":["ace","acg","container-workflows","java","java-workflows","javaee","management-app","smoothness"],"latest_commit_sha":null,"homepage":"https://ace.jlab.org/srm","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeffersonLab.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-19T18:11:01.000Z","updated_at":"2026-01-20T21:37:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"89742105-c88a-4a81-8638-404d919aef58","html_url":"https://github.com/JeffersonLab/srm","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/JeffersonLab/srm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffersonLab%2Fsrm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffersonLab%2Fsrm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffersonLab%2Fsrm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffersonLab%2Fsrm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeffersonLab","download_url":"https://codeload.github.com/JeffersonLab/srm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffersonLab%2Fsrm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28849376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ace","acg","container-workflows","java","java-workflows","javaee","management-app","smoothness"],"created_at":"2026-01-28T19:02:43.683Z","updated_at":"2026-01-28T19:02:44.416Z","avatar_url":"https://github.com/JeffersonLab.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# srm [![CI](https://github.com/JeffersonLab/srm/actions/workflows/ci.yaml/badge.svg)](https://github.com/JeffersonLab/srm/actions/workflows/ci.yaml) [![Docker](https://img.shields.io/docker/v/jeffersonlab/srm?sort=semver\u0026label=DockerHub)](https://hub.docker.com/r/jeffersonlab/srm)\nA [Jakarta EE 10](https://en.wikipedia.org/wiki/Jakarta_EE) web application for managing system readiness at Jefferson Lab built with the [Smoothness](https://github.com/JeffersonLab/smoothness) web template.\n\n![Screenshot](https://github.com/JeffersonLab/srm/raw/main/Screenshot.png?raw=true \"Screenshot\")\n\n---\n- [Overview](https://github.com/JeffersonLab/srm#overview)\n- [Quick Start with Compose](https://github.com/JeffersonLab/srm#quick-start-with-compose)\n- [Install](https://github.com/JeffersonLab/srm#install)\n- [Configure](https://github.com/JeffersonLab/srm#configure)\n- [Build](https://github.com/JeffersonLab/srm#build)\n- [Develop](https://github.com/JeffersonLab/srm#develop)  \n- [Release](https://github.com/JeffersonLab/srm#release)\n- [Deploy](https://github.com/JeffersonLab/srm#deploy)\n- [See Also](https://github.com/JeffersonLab/srm#see-also) \n---\n\n## Overview\nThe System Readiness application allows machine operators and management to determine machine readiness.  The app inventories all systems of the machine and organizes systems into a hierarchy of categories.  Further, systems are assigned individual components to increase readiness specificity.  To aid in answering the more common question of where can beam be sent, each component is associated with zero or more beam destinations.  Component readiness is determined by System Responsible Groups, and each component has an ordered set assigned.   Each Responsible Group is associated with a set of group leaders, who are authorized to mark final readiness.\n\n## Quick Start with Compose\n1. Grab project\n```\ngit clone https://github.com/JeffersonLab/srm\ncd srm\n```\n2. Launch [Compose](https://github.com/docker/compose)\n```\ndocker compose up\n```\n3. Navigate to page\n```\nhttp://localhost:8080/srm\n```\n\n**Note**: Login with demo username \"tbrown\" and password \"password\".\n\nSee: [Docker Compose Strategy](https://gist.github.com/slominskir/a7da801e8259f5974c978f9c3091d52c)\n\n## Install\nThis application requires a Java 17+ JVM and standard library to run, plus a Jakarta EE 10 application server (developed with Wildfly).\n\n\n1. Install service [dependencies](https://github.com/JeffersonLab/srm/blob/main/deps.yaml)\n2. Download [Wildfly 37.0.1](https://www.wildfly.org/downloads/)\n3. [Configure](https://github.com/JeffersonLab/srm#configure) Wildfly and start it\n4. Download [srm.war](https://github.com/JeffersonLab/srm/releases) and deploy it to Wildfly\n5. Navigate your web browser to [localhost:8080/srm](http://localhost:8080/srm)\n\n## Configure\n\n### Configtime\nWildfly must be pre-configured before the first deployment of the app. The [wildfly bash scripts](https://github.com/JeffersonLab/wildfly#configure) can be used to accomplish this. See the [Dockerfile](https://github.com/JeffersonLab/srm/blob/main/Dockerfile) for an example.\n\n### Runtime\nUses the [Smoothness Environment Variables](https://github.com/JeffersonLab/smoothness#environment-variables) plus the following application specific:\n\n| Name           | Description                                                                                                                     |\n|----------------|---------------------------------------------------------------------------------------------------------------------------------|\n| SRM_BOOKS_CSV  | Comma Separated Logbooks to post OPS-PR entries to.  Defaults to TLOG.  Generally should be set to ELOG in production.          |\n| CED_SERVER_URL | The scheme, host name and port of the CEBAF Element Database (CED)                                                              |\n\nThere are some [Settings](https://github.com/JeffersonLab/srm/blob/87cb8b7d1a9b0e2e36cc68b34eaefe02478bb89a/docker/oracle/setup/02_ddl.sql#L256-L264) in the database as well.\n\n### Database\nThis application requires an Oracle 19+ database with the following [schema](https://github.com/JeffersonLab/srm/tree/main/container/oracle/initdb.d) installed.   The application server hosting this app must also be configured with a JNDI datasource.\n\n## Build\nThis project is built with [Java 21](https://adoptium.net/) (compiled to Java 17 bytecode), and uses the [Gradle 9](https://gradle.org/) build tool to automatically download dependencies and build the project from source:\n\n```\ngit clone https://github.com/JeffersonLab/srm\ncd srm\ngradlew build\n```\n**Note**: If you do not already have Gradle installed, it will be installed automatically by the wrapper script included in the source\n\n**Note for JLab On-Site Users**: Jefferson Lab has an intercepting [proxy](https://gist.github.com/slominskir/92c25a033db93a90184a5994e71d0b78)\n\nSee: [Docker Development Quick Reference](https://gist.github.com/slominskir/a7da801e8259f5974c978f9c3091d52c#development-quick-reference)\n\n## Develop\nIn order to iterate rapidly when making changes it's often useful to run the app directly on the local workstation, perhaps leveraging an IDE.  In this scenario run the service dependencies with:\n```\ndocker compose -f deps.yaml up\n```\n**Note**: The local install of Wildfly should be [configured](https://github.com/JeffersonLab/srm#configure) to proxy connections to services via localhost and therefore the environment variables should contain:\n```\nKEYCLOAK_BACKEND_SERVER_URL=http://localhost:8081\nFRONTEND_SERVER_URL=https://localhost:8443\n```\nFurther, the local DataSource must also leverage localhost port forwarding so the `standalone.xml` connection-url field should be: `jdbc:oracle:thin:@//localhost:1521/xepdb1`.  \n\nThe [server](https://github.com/JeffersonLab/wildfly/blob/main/scripts/server-setup.sh) and [app](https://github.com/JeffersonLab/wildfly/blob/main/scripts/app-setup.sh) setup scripts can be used to set up a local instance of Wildfly. \n\n## Release\n1. Bump the version number in the VERSION file and commit and push to GitHub (using [Semantic Versioning](https://semver.org/)).\n2. The [CD](https://github.com/JeffersonLab/srm/blob/main/.github/workflows/cd.yaml) GitHub Action should run automatically invoking:\n    - The [Create release](https://github.com/JeffersonLab/java-workflows/blob/main/.github/workflows/gh-release.yaml) GitHub Action to tag the source and create release notes summarizing any pull requests.   Edit the release notes to add any missing details.  A war file artifact is attached to the release.\n    - The [Publish docker image](https://github.com/JeffersonLab/container-workflows/blob/main/.github/workflows/docker-publish.yaml) GitHub Action to create a new demo Docker image.\n    - The [Deploy to JLab](https://github.com/JeffersonLab/general-workflows/blob/main/.github/workflows/jlab-deploy-app.yaml) GitHub Action to deploy to the JLab test environment.\n\n## Deploy\nThe deploy to JLab's acctest is handled automatically via the release workflow.\n\nAt JLab this app is found at [ace.jlab.org/srm](https://ace.jlab.org/srm) and internally at [acctest.acc.jlab.org/srm](https://acctest.acc.jlab.org/srm).  However, those servers are proxies for `wildfly3.acc.jlab.org` and `wildflytest3.acc.jlab.org` respectively.   A [deploy script](https://github.com/JeffersonLab/wildfly/blob/main/scripts/deploy.sh) is provided on each server to automate wget and deploy.  Example:\n\n```\n/opt/wildfly/cd/deploy.sh srm v1.2.3\n```\n\n**JLab Internal Docs**:  [RHEL9 Wildfly](https://acgdocs.acc.jlab.org/en/ace/builds/rhel9-wildfly)\n\n## See Also\n - [Hot Checkout for 12 GeV at Jefferson Lab](https://proceedings.jacow.org/ICALEPCS2015/papers/mopgf072.pdf), presented at [ICALEPCS 2015](https://proceedings.jacow.org/ICALEPCS2015/)\n - [JLab ACE management-app list](https://github.com/search?q=org%3Ajeffersonlab+topic%3Aace+topic%3Amanagement-app\u0026type=repositories)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffersonlab%2Fsrm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffersonlab%2Fsrm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffersonlab%2Fsrm/lists"}