{"id":25895604,"url":"https://github.com/diamondlightsource/gda-ispyb-api","last_synced_at":"2025-11-04T11:02:57.835Z","repository":{"id":12761874,"uuid":"70803710","full_name":"DiamondLightSource/gda-ispyb-api","owner":"DiamondLightSource","description":"Library for writing acquisition metadata into an ISPyB database","archived":false,"fork":false,"pushed_at":"2023-07-07T21:55:48.000Z","size":9159,"stargazers_count":3,"open_issues_count":2,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-09-28T22:38:10.260Z","etag":null,"topics":["database","ispyb","java","mariadb","sqlpl"],"latest_commit_sha":null,"homepage":"","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/DiamondLightSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-13T12:23:33.000Z","updated_at":"2023-09-28T22:38:10.260Z","dependencies_parsed_at":"2023-01-11T18:24:18.690Z","dependency_job_id":null,"html_url":"https://github.com/DiamondLightSource/gda-ispyb-api","commit_stats":null,"previous_names":[],"tags_count":61,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgda-ispyb-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgda-ispyb-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgda-ispyb-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fgda-ispyb-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DiamondLightSource","download_url":"https://codeload.github.com/DiamondLightSource/gda-ispyb-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241582515,"owners_count":19985845,"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":["database","ispyb","java","mariadb","sqlpl"],"created_at":"2025-03-02T22:32:10.550Z","updated_at":"2025-11-04T11:02:52.794Z","avatar_url":"https://github.com/DiamondLightSource.png","language":"Java","readme":"[![Build Status](https://dev.azure.com/diamond-lims/gda-ispyb-api/_apis/build/status/DiamondLightSource.gda-ispyb-api?branchName=master)](https://dev.azure.com/diamond-lims/gda-ispyb-api/_build/latest?definitionId=1\u0026branchName=master)\n\n# GDA ISPyB API\n\nThis is a Java library for accessing a Diamond-flavour ISPyB database. It's designed for server-side-only usage, utilising stored procedures to access the database tables. A key benefit of this approach is the ability to modify the behaviour of the library methods without downtime and without building and deploying a new version of the library itself. A simple change to a stored procedure is very quick and runs in a transaction without disrupting access to the database.\n\nThe stored procedures are maintained in a separate repository: [ispyb-database](https://github.com/DiamondLightSource/ispyb-database).\n\n## Build requirements\n\n* MariaDB 10.3 or later\n* JDK 1.8 (also appears to work with 11) JRE and development packages (e.g. on Fedora: java-1.8.0-openjdk java-1.8.0-openjdk-devel)\n* Maven\n\n## Documentation\n\nThe javadocs are currently hosted at [https://alfred.diamond.ac.uk/documentation/javadocs/gda-ispyb-api/](https://alfred.diamond.ac.uk/documentation/javadocs/gda-ispyb-api/).\n\n## Examples\n\nFor example usage, see the integration tests, e.g. [PlateIntegrationTest](https://github.com/DiamondLightSource/gda-ispyb-api/blob/master/src/test/java/uk/ac/diamond/ispyb/test/PlateIntegrationTest.java).\n\n## Tests\n\nTo create the database user, run e.g. these SQL commands:\n\n```sql\nCREATE USER maven@localhost IDENTIFIED BY 'password_here';\n\nGRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `maven\\_%`.* TO 'maven'@'localhost';\n```\n\nTo build and test the JARs:\n\n```bash\nmvn -Dispyb.url={jdbc_url} -Dispyb.user={user} -Dispyb.pw={password} -Dispyb.host={host} -Dispyb.port={port} package\n```\n\nExample:\n\n```bash\nmvn -Dispyb.url='jdbc:mariadb://localhost:3306' -Dispyb.user=maven -Dispyb.pw='password_here' -Dispyb.host=localhost -Dispyb.port=3306 package\n```\n\nTo run a particular test class:\n\n```bash\nmvn -Dispyb.url={jdbc_url} -Dispyb.user={user} -Dispyb.pw={password} -Dispyb.host={host} -Dispyb.port={port} -Dtest={TestClassName} test\n```\n\nTo generate javadocs:\n\n```bash\nmvn -Dispyb.url={jdbc_url} -Dispyb.user={user} -Dispyb.pw={password} -Dispyb.host={host} -Dispyb.port={port} install\n```\n\nThe javadocs will then appear in a folder called `target/apidocs/`.\n\n## Release\n\nTo release, use the script `release.sh` with the argument `major`, `minor`, or `bugfix`. This script will handle updating the version. The result will be added to GitHub as a release by Azure Pipelines.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fgda-ispyb-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiamondlightsource%2Fgda-ispyb-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fgda-ispyb-api/lists"}