Skip to content

PR8/15: import six services verbatim (subtree, full history)#267

Open
Gcolon021 wants to merge 1764 commits into
psar/07-remove-legacyfrom
psar/08-service-imports
Open

PR8/15: import six services verbatim (subtree, full history)#267
Gcolon021 wants to merge 1764 commits into
psar/07-remove-legacyfrom
psar/08-service-imports

Conversation

@Gcolon021

Copy link
Copy Markdown
Contributor

Verbatim, history-preserving imports of the six remaining services, replayed from the original
subtree imports. None of these is in the reactor yet — the root build is unchanged; each
service joins the reactor in its own adoption PR (PR9–PR14), which is where the actual refactor
diff lives. Review here = provenance check.

Service Upstream repo @ commit Prefix
visualization PIC-SURE-Visualization @ 1988897e2 services/pic-sure-visualization-service
auth-microapp pic-sure-auth-microapp @ 114e56b77 services/pic-sure-auth-microapp
logging PIC-SURE-Logging @ 0ed1c26c3 services/pic-sure-logging
hpds pic-sure-hpds @ 3f89e144c services/pic-sure-hpds
pic-sure-services pic-sure-services @ c8620b323 services/pic-sure-services
dictionary picsure-dictionary @ 84c788f58 services/picsure-dictionary

Part of the monorepo consolidation stack (PR1–PR14). Verified: each services/<name>/ tree is
byte-identical to the original import; mvn validate green; gitleaks scanned (new commits clean).

Luke-Sikina and others added 30 commits October 10, 2024 08:59
* ALS-4643: Add integration tests using 1k genome dataset
* ALS-6564: Allow searching by old variant coords
Enhance code documentation by adding Javadoc comments to Ga4ghVisaV1, Ga4ghPassportV1, RasDbgapPermission, Passport, and User classes. These comments provide a clearer understanding of the purpose and structure of each class.
[ALS-7575] Added new endpoints for cache inspection and introduced CacheEvictionService to handle cache eviction for users. Security configuration was updated to allow access to cache endpoints, and several services were modified to utilize the new cache eviction mechanisms.
)

* Set token 'active' field to false on invalid token scenarios
Ensure the 'active' field in tokenInspection is marked false whenever a token is invalid or user not found. This improves the clarity and consistency of token status checks throughout the service.

* Remove custom key generator from cache eviction
Removed the custom key generator from cache eviction in AccessRuleService for streamlined annotation usage. Added null and blank subject checks in CacheEvictionService to prevent errors, and removed unnecessary blank line in FENCEAuthenticationService.
* Remove obsolete Maven deploy workflow
Deleted the `github-actions-deploy-snapshots.yml` file as it was redundant. Renamed the `github-actions-test.yml` for consistency, updating the directory from `workflow` to `workflows`.

* Update .github/workflows/github-actions-test.yml
* Remove duplicate and unused test classes

* Switch project parent to Spring Boot and update dependencies.

Updated the project parent to `spring-boot-starter-parent` with version `3.3.5`. Consolidated and streamlined dependencies to align with Spring Boot configurations, ensuring compatibility and removing redundant entries.

* Refactor tests to use JUnit 5 and Spring Boot Test

Migrated test classes from JUnit 4 to JUnit 5, replacing @before with @beforeeach, @test(expected) with assertThrows, and @RunWith with @SpringBootTest/@ContextConfiguration annotations. Updated Mockito annotations to @MockBean where appropriate and used dependency injection with @Autowired to initialize services.

* Add unit tests for caching mechanisms in auth services

Introduced `CacheTest` to validate caching behavior in `AccessRuleService` and `UserService`. These tests ensure the correct usage of caches like `mergedRulesCache`, `preProcessedAccessRules`, and `mergedTemplateCache`, and verify proper eviction mechanisms.

* Update Dockerfiles for dynamic JAR filename handling

Changed the Dockerfile COPY commands to use a wildcard for JAR filenames, ensuring compatibility with differing build outputs. Additionally, added the packaging type as 'jar' in the pom.xml to standardize project packaging.

* Add AWS Secrets Manager dependency to pom.xml

Included the `aws-secretsmanager-jdbc` dependency in the pom.xml to support secure secrets management with AWS Secrets Manager. This change aims to enhance security by integrating Secrets Manager into the authentication services.
* [ALS-5000] Update maven compiler plugin
Maven compiler plugin has a dependency on log4j.

* [ALS-5053] Add error pages to web.xml
* [ALS-5053] Add value to server.xml
This value will intercept request processed by tomcat. I have disabled reports and show server information. This information should not be returned to the client.

(cherry picked from commit cf108c9687bf76b9eb889781d806ffff6e549a00)
(cherry picked from commit 428eacc6e15cd182c58018ec860eb311d27a3e08)
(cherry picked from commit 55732233977b9b110b06571bfbd422d92e8ce3f3)
- Create service for writing out to file
- Add configuration to specify where to write
- Add PIC-SURE uuid to query object
  - This is how we namespace file writes
- Make abstract processor intersect ID sets more proactively
  - Memory issues
- Most of this work will be done by another service, but
- In GIC land, we get queries that have a concept path that is present
in some other site, but not the one the query is getting run in
- The TimeseriesProcessor needs to not explode when this happens

(cherry picked from commit d3d039d6834a1bb71e5a79372536c1d003f92cbc)
(cherry picked from commit 2c550655801f51cdf8771f9634be075f85956d49)
(cherry picked from commit c34a1a4cf0f13e27e1c83e6c2461c9a9a382a384)
(cherry picked from commit 25d0d01d53c5cb4eae5cbc40501bd3a22912e56f)
- Make service that does this
- Isolate time series logic a bit more
- Tests

(cherry picked from commit 5aea45b35964602debb49b8fca4e9e67f10cf5e0)
(cherry picked from commit 35d59ede482a45b52af478de5808acc8adb27fc6)
(cherry picked from commit 369086bb990d5df4b90305c94af0030e3b049cc8)
Gcolon021 and others added 16 commits June 30, 2026 13:20
…#109)

V7 and V10 referenced concept_node, concept_node_meta, and
facet__concept_node without the dict schema prefix, relying on the
session search_path resolving to dict. Qualify every table, trigger
target, and index target with dict. so the migrations are correct
regardless of search_path, matching V5/V6/V8/V9.

V8 and V9 were already fully qualified and are unchanged.
* Emit caller as a top-level audit field

Add caller to the AuditEvent model and emit it as a top-level field in
AuditLogService
…or (Phase 3)

Adds spring-boot-starter-actuator to the service module and a custom
HpdsReadinessHealthIndicator that reports UP only when phenotype or
genomic data is actually loaded (AbstractProcessor.getDictionary() /
getInfoStoreColumns() non-empty), since HPDS has no DataSource for the
built-in db indicator to key off of. Enables health details and probes
via management.endpoint properties; no port or existing behavior changes.
* feat(auth): segment-aware HPDS-v3 consent-skip (keep legacy /v3 until Phase 7)
* feat(health): expose Actuator /actuator/health with db indicator (Phase 3 Task 4)
* fix(health): disable actuator mail indicator (SMTP-unreachable envs must not report DOWN)
The resource registry is gone, so hpdsResourceUUID no longer arrives
from clients (the path-routed frontend omits it) and cannot drive
access selection. The gateway owns X-User-Id (strips client-supplied
values, injects it only after successful introspection), so its
presence proves an authenticated caller and its absence means the
request passed open-access validation -- unlike the body field, it
cannot be spoofed to obtain unobfuscated counts.

hpdsResourceUUID stays accepted as an optional legacy field and is
passed through to HPDS request bodies (HPDS ignores it); the
AUTH/OPEN_HPDS_RESOURCE_UUID env vars are now optional fallbacks
rather than required startup config.
Found by live smoke: with no configured fallback UUIDs and no body UUID
(the production shape after the registry removal), audit metadata NPE'd
on resourceUUID.toString(). VisualizationIntegrationTest now runs with
blank UUID properties to pin the production shape.
HPDS ignores the body field entirely; with the registry gone and no
configured fallbacks the UUID is legitimately null. Replaces the
require-UUID tests with one pinning that a null UUID still queries
HPDS. Found by live smoke (second layer behind the audit NPE).
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4f508937-c8cf-4d42-8be9-a520671d4380

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch psar/08-service-imports

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Gcolon021
Gcolon021 force-pushed the psar/07-remove-legacy branch from b462f2e to cf8ec55 Compare July 14, 2026 18:09
@Gcolon021
Gcolon021 force-pushed the psar/08-service-imports branch from 5762d17 to b35dfc3 Compare July 14, 2026 18:09
@Gcolon021 Gcolon021 changed the title PR8/14: import six services verbatim (subtree, full history) PR8/15: import six services verbatim (subtree, full history) Jul 14, 2026
@Gcolon021
Gcolon021 force-pushed the psar/07-remove-legacy branch from cf8ec55 to a087b08 Compare July 14, 2026 18:12
@Gcolon021
Gcolon021 force-pushed the psar/08-service-imports branch from b35dfc3 to a83689f Compare July 14, 2026 18:12
@Gcolon021 Gcolon021 added the enhancement New feature or request label Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants