Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
374 commits
Select commit Hold shift + click to select a range
61dc2b1
[BI-2540] - disabled flyway out-of-order
mlm483 Jun 25, 2025
d3c0508
[BI-2540] - utilized oauth_provider column
mlm483 Jun 26, 2025
05c3656
fix validation error behavior
dmeidlin Jun 27, 2025
1556ca3
[BI-2540] - updated test SQL
mlm483 Jun 27, 2025
6c8329b
Merge branch 'develop' into feature/BI-2628
dmeidlin Jun 27, 2025
2700fde
Merge pull request #469 from Breeding-Insight/feature/BI-2628
dmeidlin Jun 27, 2025
7305b8f
[autocommit] bumping build number
rob-ouser-bi Jun 27, 2025
5af44b9
add test for appending obs data using prior variables
dmeidlin Jun 30, 2025
8be83cd
Merge branch 'develop' into feature/BI-2540
mlm483 Jul 1, 2025
e9386dd
[BI-2540] - bumped migration version to avoid conflict
mlm483 Jul 1, 2025
a8bd40d
[BI-2540] - added GitHub OAuth variables to docker-compose.yml
mlm483 Jul 1, 2025
db262d3
[BI-2540] - added (placeholder) GitHub OAuth variables to build.yml
mlm483 Jul 1, 2025
995d571
[BI-2540] - renamed constraint
mlm483 Jul 1, 2025
b053edf
add test for appending data to multiple datasets
dmeidlin Jul 2, 2025
bb70d3d
create validation check for single dataset used in append workflow
dmeidlin Jul 8, 2025
0cf53b8
[BI-2540] - added migration locations for flyway maven plugin
mlm483 Jul 10, 2025
509fcd9
[BI-2540] - added configuration to workflow files
mlm483 Jul 10, 2025
60c379d
feat: Optimize observation dependency updates
google-labs-jules[bot] Jul 10, 2025
f5b26d1
create validator for ensuring obs vars are not re-used from other dat…
dmeidlin Jul 11, 2025
3ef1742
create interface for obs var validator
dmeidlin Jul 11, 2025
ec56da1
feat: Configure BrAPI docker image and update GH Action
google-labs-jules[bot] Jul 11, 2025
f5b34e6
Merge pull request #477 from Breeding-Insight/feature/configure-brapi…
nickpalladino Jul 11, 2025
5235abd
[autocommit] bumping build number
rob-ouser-bi Jul 11, 2025
d21d426
Update actions versions
nickpalladino Jul 14, 2025
9b49b43
[autocommit] bumping build number
rob-ouser-bi Jul 14, 2025
3da91ee
Merge branch 'develop' into optimize-observation-dependency-updates
nickpalladino Jul 14, 2025
2298577
Change distribution
nickpalladino Jul 14, 2025
c8df905
[autocommit] bumping build number
rob-ouser-bi Jul 14, 2025
8516b2d
Merge branch 'develop' into optimize-observation-dependency-updates
nickpalladino Jul 15, 2025
2302e6d
fix bug in obsvar validator
dmeidlin Jul 16, 2025
1771679
Add check right before commmit
nickpalladino Jul 16, 2025
6fa158e
Don't create empty treatments array in sub-entity obs units
nickpalladino Jul 18, 2025
c2eb985
[BI-2540] - updated flyway locations paths for CI
mlm483 Jul 21, 2025
ff15373
Merge branch 'develop' into feature/BI-2540
mlm483 Jul 23, 2025
a8a0eb2
[BI-2540] - updated comment
mlm483 Jul 30, 2025
4d62efa
Removed comment
nickpalladino Jul 31, 2025
f969a89
Merge pull request #476 from Breeding-Insight/optimize-observation-de…
nickpalladino Aug 1, 2025
4986cef
[autocommit] bumping build number
rob-ouser-bi Aug 1, 2025
7a6457f
Merge branch 'develop' into bug/BI-2694
nickpalladino Aug 1, 2025
c58a7c3
Merge pull request #480 from Breeding-Insight/bug/BI-2694
nickpalladino Aug 1, 2025
788af93
[autocommit] bumping build number
rob-ouser-bi Aug 1, 2025
9bce0d3
Merge branch 'develop' into bug/BI-2269-2
nickpalladino Aug 1, 2025
0a45488
Add gemini-cli github actions
nickpalladino Aug 13, 2025
5ee551c
[autocommit] bumping build number
rob-ouser-bi Aug 13, 2025
9c6bdd6
[BI-2193] Improve/Correct Sub-Entity Tabular View
HMS17 Aug 19, 2025
73aa948
[BI-2540] - fixed GitHub Actions
mlm483 Aug 20, 2025
f5457c3
Merge branch 'develop' into feature/BI-2540
mlm483 Aug 20, 2025
fdb0f0e
Merge pull request #473 from Breeding-Insight/feature/BI-2540
mlm483 Aug 20, 2025
07518d9
[autocommit] bumping build number
rob-ouser-bi Aug 20, 2025
9ff30b0
[BI-2540] - fixed release action
mlm483 Aug 20, 2025
1e0597d
[autocommit] bumping build number
rob-ouser-bi Aug 20, 2025
2d2f406
[autocommit] bumping build number
rob-ouser-bi Aug 25, 2025
4982590
[BI-2540] - fixed versioner-develop.yml action
mlm483 Aug 25, 2025
27c1dfc
[autocommit] bumping build number
rob-ouser-bi Aug 25, 2025
779766c
patched Java-based migration
mlm483 Aug 25, 2025
01bfe8c
[autocommit] bumping build number
rob-ouser-bi Aug 25, 2025
fcf0efa
[BI-2540] - added placeholders for GitHub OAuth variables
mlm483 Aug 25, 2025
6a33d36
[autocommit] bumping build number
rob-ouser-bi Aug 25, 2025
85abdce
fix for migration
mlm483 Aug 26, 2025
cb7ed25
[autocommit] bumping build number
rob-ouser-bi Aug 26, 2025
57aebce
[autocommit] bumping build number
rob-ouser-bi Aug 28, 2025
a137a7c
Merge branch 'develop' into release/1.1.1
mlm483 Aug 28, 2025
c1ea5ac
[autocommit] bumping build number
rob-ouser-bi Aug 28, 2025
91d0848
fix merge issue
mlm483 Aug 28, 2025
b769afc
[autocommit] bumping build number
rob-ouser-bi Aug 28, 2025
0a03071
fix test
mlm483 Aug 28, 2025
0c250e5
[autocommit] bumping build number
rob-ouser-bi Aug 28, 2025
38f69ee
Merge pull request #488 from Breeding-Insight/release/1.1.1
mlm483 Aug 28, 2025
be92ef7
[autocommit] bumping build number
rob-ouser-bi Aug 28, 2025
fc318ce
Merge branch 'develop' into feature/BI-2110
HMS17 Aug 29, 2025
fd7da0c
Merge branch 'develop' into bug/BI-2269-2
nickpalladino Sep 8, 2025
f13bbe7
[BI-2110] - Unit Test Fix
HMS17 Sep 2, 2025
6f760ae
[BI-2110] - Validation Fix, Enabled Append when more than one germplasm
HMS17 Sep 10, 2025
9616246
[BI-2110] - Remove unneeded todos
HMS17 Sep 15, 2025
174f9dc
Merge pull request #478 from Breeding-Insight/bug/BI-2269-2
nickpalladino Oct 21, 2025
88f5c93
[autocommit] bumping build number
rob-ouser-bi Oct 21, 2025
de0a598
[BI-2110] Missing check on validation
HMS17 Nov 6, 2025
d63ca33
[BI-2110] Added missing imports
HMS17 Nov 6, 2025
a4bf18a
[BI-2110] - Adding GID to key generation
HMS17 Nov 18, 2025
adce131
[BI-2110] - Changed validation handling to avoid nullpointerexception
HMS17 Nov 19, 2025
e45604e
Merge branch 'develop' into feature/BI-2110
nickpalladino Nov 21, 2025
0b5b602
Merge pull request #483 from Breeding-Insight/feature/BI-2110
nickpalladino Nov 25, 2025
6fea369
[autocommit] bumping build number
rob-ouser-bi Nov 25, 2025
1dee565
Merge branch 'develop' into feature/BI-2193
HMS17 Nov 25, 2025
a638255
Merge pull request #487 from Breeding-Insight/feature/BI-2193
nickpalladino Nov 25, 2025
f232934
[autocommit] bumping build number
rob-ouser-bi Nov 25, 2025
ba9cc28
codex first pass
nickpalladino Dec 5, 2025
d008c15
[BI-2234] - Improve exp dataset export file
HMS17 Dec 12, 2025
104127b
[BI-2234] - Code review helper method
HMS17 Dec 15, 2025
05a5636
Merge pull request #490 from Breeding-Insight/feature/BI-2234
nickpalladino Dec 15, 2025
6460a2c
[autocommit] bumping build number
rob-ouser-bi Dec 15, 2025
eb6f205
[BI-2755] - improve default sub-unit sort
HMS17 Dec 16, 2025
f6eac8d
Merge branch 'develop' into feature/BI-2755
nickpalladino Dec 16, 2025
ec139fb
Merge pull request #491 from Breeding-Insight/feature/BI-2755
nickpalladino Dec 17, 2025
1fe7902
[autocommit] bumping build number
rob-ouser-bi Dec 17, 2025
b2785ae
Moved httpstatus codes to controller and fixed post /observationlevel…
nickpalladino Jan 7, 2026
36b67b9
Removed rollback code until brapi server supports observation unit de…
nickpalladino Jan 8, 2026
fdf5f2e
Removed unused code
nickpalladino Jan 8, 2026
596c3c8
Merge branch 'develop' into feature/BI-2743
nickpalladino Jan 9, 2026
1042398
Fix missing observationLevel in additionalInfo
nickpalladino Jan 9, 2026
50146d7
Fix test
nickpalladino Jan 9, 2026
0d0f374
Try changing fannypack url
nickpalladino Jan 13, 2026
382e10f
Update fannypack github url
nickpalladino Jan 13, 2026
6a78d80
[autocommit] bumping build number
rob-ouser-bi Jan 13, 2026
d4b85b0
Fix test
nickpalladino Jan 15, 2026
a59803e
[BI-2641] WIP
Jan 20, 2026
9c44131
Merge pull request #493 from Breeding-Insight/feature/BI-2641-2
nickpalladino Jan 22, 2026
14993fa
[autocommit] bumping build number
rob-ouser-bi Jan 22, 2026
b360602
Revert observation level change
nickpalladino Jan 23, 2026
2b2867d
Revert plot case change
nickpalladino Jan 23, 2026
5be7c6e
Merge branch 'develop' into feature/BI-2743
nickpalladino Jan 23, 2026
b2bfedb
Revert removal of lowercase conversion and add todo
nickpalladino Jan 27, 2026
d70c7bb
Fix comment typo
nickpalladino Jan 27, 2026
236c009
Update javadocs
nickpalladino Jan 27, 2026
1620a76
[BI-2751] - Germplasm entry number weirdness
HMS17 Feb 3, 2026
f03d4d4
Set version for brapi ossrh packages
nickpalladino Feb 6, 2026
01bcda0
[autocommit] bumping build number
rob-ouser-bi Feb 6, 2026
0317e6d
[BI-2751] - fix parental accession no check
HMS17 Feb 9, 2026
11bae48
Switch back to snapshot
nickpalladino Feb 9, 2026
785f86e
Merge branch 'develop' of https://github.com/Breeding-Insight/bi-api …
nickpalladino Feb 9, 2026
5ee17eb
[autocommit] bumping build number
rob-ouser-bi Feb 9, 2026
3663007
Merge branch 'develop' into bug/BI-2751
HMS17 Feb 9, 2026
b39ea9b
Changes for test failures
nickpalladino Feb 11, 2026
54577e6
Merge branch 'develop' into feature/BI-2743
nickpalladino Feb 12, 2026
a115d6e
Merge pull request #489 from Breeding-Insight/feature/BI-2743
nickpalladino Feb 12, 2026
0565f4f
[autocommit] bumping build number
rob-ouser-bi Feb 12, 2026
e0b7e91
Merge branch 'develop' into bug/BI-2751
nickpalladino Feb 12, 2026
b85a0e4
[BI-2786] Remove code to add treatments to additional info
jloux-brapi Feb 13, 2026
ef2105c
Remove gemini github actions
nickpalladino Feb 16, 2026
b3a1c3a
[autocommit] bumping build number
rob-ouser-bi Feb 16, 2026
1084ddd
Upgrade testcontainers version
nickpalladino Feb 16, 2026
fb34b53
Merge branch 'develop' of https://github.com/Breeding-Insight/bi-api …
nickpalladino Feb 16, 2026
ea256d3
[autocommit] bumping build number
rob-ouser-bi Feb 16, 2026
c475797
Merge branch 'develop' into bug/BI-2786
jloux-brapi Feb 16, 2026
c4539f6
Remove treatments from BrAPIAdditionalFields, update unit test
jloux-brapi Feb 16, 2026
83c0a46
Merge pull request #495 from Breeding-Insight/bug/BI-2786
jloux-brapi Feb 17, 2026
b4b338f
[autocommit] bumping build number
rob-ouser-bi Feb 17, 2026
1041fb5
Try pinning older ubuntu version for gigwa issue
nickpalladino Feb 18, 2026
3441dda
Merge branch 'develop' of https://github.com/Breeding-Insight/bi-api …
nickpalladino Feb 18, 2026
d1203ba
[autocommit] bumping build number
rob-ouser-bi Feb 18, 2026
a312d69
[BI-2751] - code review fix
HMS17 Feb 18, 2026
5fe7666
[BI-2751] - code review fix more fixing pedigree logic
HMS17 Feb 18, 2026
5583a42
Update pull_request_template.md
sb2597 Feb 18, 2026
13ab6df
[autocommit] bumping build number
rob-ouser-bi Feb 18, 2026
7a2d21f
Update pull_request_template.md
sb2597 Feb 18, 2026
480e65c
[autocommit] bumping build number
rob-ouser-bi Feb 18, 2026
33edf1f
Exclude gigwa tests temporarily
nickpalladino Feb 18, 2026
1efaf4e
Merge branch 'develop' of https://github.com/Breeding-Insight/bi-api …
nickpalladino Feb 18, 2026
7d78445
[autocommit] bumping build number
rob-ouser-bi Feb 18, 2026
34d333e
Merge branch 'develop' into bug/BI-2751
HMS17 Feb 19, 2026
8f6f047
Fix status code check
nickpalladino Feb 19, 2026
386c889
Merge pull request #494 from Breeding-Insight/bug/BI-2751
nickpalladino Feb 20, 2026
6a0651d
[autocommit] bumping build number
rob-ouser-bi Feb 20, 2026
a4906fa
Merge branch 'develop' into bug/BI-2796
HMS17 Feb 20, 2026
51e40b2
Merge pull request #497 from Breeding-Insight/bug/BI-2796
HMS17 Feb 20, 2026
53b198c
[autocommit] bumping build number
rob-ouser-bi Feb 20, 2026
a71fd52
Update version
nickpalladino Feb 23, 2026
7d7201d
[autocommit] bumping build number
rob-ouser-bi Feb 23, 2026
4f9a56b
[BI-2744] DeltaBreed:Create exp, create obs level
HMS17 Feb 24, 2026
08a4fbb
[BI-2791] Exp File Name Improvement
HMS17 Feb 26, 2026
6e1c2fc
[BI-2791] Zip file name improvement
HMS17 Feb 26, 2026
cad6123
Merge pull request #499 from Breeding-Insight/feature/BI-2791
jloux-brapi Mar 2, 2026
75ed32f
[autocommit] bumping build number
rob-ouser-bi Mar 2, 2026
fa960fa
[BI-2744] - Code review logs suggestion
HMS17 Mar 4, 2026
56ce24a
[BI-2744] - Code review logs suggestion 2
HMS17 Mar 4, 2026
8725ad4
Merge branch 'develop' into feature/BI-2744
HMS17 Mar 5, 2026
02d9a56
Add synchronize trigger for PRs
nickpalladino Mar 5, 2026
327c2bc
Merge branch 'develop' into feature/BI-2744
nickpalladino Mar 5, 2026
f367c5d
Trigger CI
nickpalladino Mar 5, 2026
ad6934b
[autocommit] bumping build number
rob-ouser-bi Mar 5, 2026
dfd7498
Merge branch 'develop' into feature/BI-2744
nickpalladino Mar 5, 2026
c2a827c
Merge pull request #498 from Breeding-Insight/feature/BI-2744
nickpalladino Mar 5, 2026
d1ecd1e
[autocommit] bumping build number
rob-ouser-bi Mar 5, 2026
ddaf750
[BI-2778] Deprecate additionalinfo usage for level and use obs unit l…
HMS17 Mar 6, 2026
5379e4a
[BI-2778] Tests casing fix
HMS17 Mar 6, 2026
7074247
[BI-2778] Export file casing fix
HMS17 Mar 6, 2026
d5e532c
[BI-2778] Fixes
HMS17 Mar 6, 2026
81a7a85
[BI-2778] Casing test
HMS17 Mar 6, 2026
e4cae76
[BI-2778] Another casing fix
HMS17 Mar 6, 2026
341c310
[BI-2778] Null pointer fix re treatment factors
HMS17 Mar 6, 2026
7db5470
[BI-2778] Test fix
HMS17 Mar 9, 2026
a80a381
[BI-2778] Unit test experiment
HMS17 Mar 9, 2026
6e601f8
[BI-2778] Revert erroneous EXP_UNIT_ID changes
HMS17 Mar 10, 2026
e6895f4
Fix issues with sub-entity obs hash, list obs var creation
jloux-brapi Mar 10, 2026
7451bac
Refactor re-used code into DatasetService
jloux-brapi Mar 12, 2026
de810cc
Merge pull request #501 from Breeding-Insight/bug/BI-2757
HMS17 Mar 16, 2026
4cee26f
[autocommit] bumping build number
rob-ouser-bi Mar 16, 2026
fb51f14
[BI-2778] Restored adding EXP_UNIT_ID
HMS17 Mar 17, 2026
e954f3b
Add new obsVarCount stat to create and append workflows
jloux-brapi Mar 18, 2026
34a0961
Merge branch 'develop' into feature/BI-2778
jloux-brapi Mar 18, 2026
7cdbd83
Merge pull request #500 from Breeding-Insight/feature/BI-2778
jloux-brapi Mar 18, 2026
dd0f51b
[autocommit] bumping build number
rob-ouser-bi Mar 18, 2026
6971ad8
Merge branch 'develop' into bug/BI-2803
nickpalladino Mar 20, 2026
f163ebf
Merge pull request #502 from Breeding-Insight/bug/BI-2803
nickpalladino Mar 23, 2026
cb8d8b7
[autocommit] bumping build number
rob-ouser-bi Mar 23, 2026
c4e83aa
[BI-2816] Unknown error when creating new experiment with file with m…
HMS17 Mar 24, 2026
6501476
Initial codex pass
nickpalladino Mar 24, 2026
34bf6a0
Switch to makeCallWithResponse
nickpalladino Mar 30, 2026
4b84d09
Merge pull request #503 from Breeding-Insight/bug/BI-2816
davedrp Mar 31, 2026
f6ad853
[autocommit] bumping build number
rob-ouser-bi Mar 31, 2026
c735d10
Support for level order uniqueness use case for sub entity dataset cr…
jloux-brapi Mar 31, 2026
af8c36a
[BI-2813] Set levelNameDbIds in OUs in experiment creation use case
jloux-brapi Apr 2, 2026
344a966
Merge branch 'develop' into feature/BI-2814
jloux-brapi Apr 2, 2026
6661de1
Merge pull request #506 from Breeding-Insight/feature/BI-2814
HMS17 Apr 7, 2026
4fcc1ff
[autocommit] bumping build number
rob-ouser-bi Apr 7, 2026
5d469a6
Refinement and test simplification
nickpalladino Apr 7, 2026
d70219e
Merge branch 'develop' into feature/BI-2813
nickpalladino Apr 7, 2026
b4f02f3
Merge pull request #507 from Breeding-Insight/feature/BI-2813
nickpalladino Apr 7, 2026
01f18bb
[autocommit] bumping build number
rob-ouser-bi Apr 7, 2026
243b21a
Merge branch 'develop' into feature/BI-2805
nickpalladino Apr 8, 2026
ce31e05
Cleanup comments
nickpalladino Apr 10, 2026
c9db139
[BI-2783] added comment
Apr 13, 2026
bf85d8a
Merge pull request #508 from Breeding-Insight/bug/BI-2783
HMS17 Apr 13, 2026
a642ee9
[autocommit] bumping build number
rob-ouser-bi Apr 13, 2026
3c8d86a
[BI-2823] removed sub entity level from the level relationships
Apr 9, 2026
9ddc5aa
Merge pull request #509 from Breeding-Insight/bug/BI-2823
jloux-brapi Apr 15, 2026
56f7db7
[autocommit] bumping build number
rob-ouser-bi Apr 15, 2026
8df73c0
Update tests
nickpalladino Apr 16, 2026
c9355ac
Merge branch 'develop' into feature/BI-2805
nickpalladino Apr 16, 2026
4d0add5
Merge pull request #505 from Breeding-Insight/feature/BI-2805
davedrp Apr 16, 2026
b742cfe
[autocommit] bumping build number
rob-ouser-bi Apr 16, 2026
0cfef86
Merge branch 'develop' into bug/BI-2801
nickpalladino Apr 20, 2026
893394a
Fix test setup and update mvn test command instructions
nickpalladino Apr 21, 2026
5c00b21
[autocommit] bumping build number
rob-ouser-bi Apr 21, 2026
43ad572
Changed to proper bi-api data response format
nickpalladino Apr 22, 2026
8edf445
[BI-2825] added 'sunflower' to species and crop tables
Apr 22, 2026
24bed04
Update tests for change in endpoint response
nickpalladino Apr 22, 2026
379623e
Merge pull request #511 from Breeding-Insight/bug/BI-2836
jloux-brapi Apr 22, 2026
a6e9e0f
[autocommit] bumping build number
rob-ouser-bi Apr 22, 2026
c0319b4
Updated test species.sql
nickpalladino Apr 23, 2026
78441e1
Merge pull request #512 from Breeding-Insight/feature/BI-2825
nickpalladino Apr 23, 2026
510b370
[autocommit] bumping build number
rob-ouser-bi Apr 23, 2026
5acfaa6
Added more detailed testing guidance
nickpalladino Apr 24, 2026
5383d04
Clean up tests
nickpalladino Apr 27, 2026
4380190
Merge branch 'release/1.3' into bug/BI-2801
nickpalladino Apr 28, 2026
780602f
Merge pull request #510 from Breeding-Insight/bug/BI-2801
humsika Apr 28, 2026
3950562
[autocommit] bumping build number
rob-ouser-bi Apr 28, 2026
3371a8c
BI-2860: Made changes to the end point to limit the access.
humsika May 12, 2026
3aab236
Merge pull request #518 from Breeding-Insight/bug/BI-2860-v1.3
nickpalladino May 13, 2026
055fc2b
[autocommit] bumping build number
rob-ouser-bi May 13, 2026
503fda4
Merge branch 'main' into release/1.3
nickpalladino May 20, 2026
3613ad6
[autocommit] bumping build number
rob-ouser-bi May 20, 2026
ae5302d
Update brapi-java-client version to 2.2.0
nickpalladino May 20, 2026
2c928c0
[autocommit] bumping build number
rob-ouser-bi May 20, 2026
a0ced83
Update brapi-java-client version to 2.2-SNAPSHOT
nickpalladino May 20, 2026
0e72775
[autocommit] bumping build number
rob-ouser-bi May 20, 2026
5844f9b
Update brapi-java-client version to 2.2.0-SNAPSHOT
nickpalladino May 20, 2026
efd8b18
[autocommit] bumping build number
rob-ouser-bi May 20, 2026
3a6361d
Update brapi-java-client version to 2.2.0
nickpalladino May 20, 2026
4346762
[autocommit] bumping build number
rob-ouser-bi May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
USER_ID=<user id of system user>
GROUP_ID=<group id of system user>

# GitHub OAuth variables. Only required if using GitHub as an OAuth provider.
GITHUB_OAUTH_CLIENT_ID=<Client ID of GitHub OAuth app.>
GITHUB_OAUTH_CLIENT_SECRET=<Client Secret of GitHub Oauth app.>

ORCID_SANDBOX_AUTHENTICATION=<true or false; true=>use the Sandbox Orcid, false=>use the Production Orcid. Defaults to false.>

# Authentication variables
Expand Down Expand Up @@ -37,6 +41,7 @@ CACHE_BRAPI_FETCH_PAGE_SIZE=65000

# BrAPI Server Variables
BRAPI_SERVER_PORT=8083
BRAPI_DOCKER_IMAGE=breedinginsight/brapi-java-server:develop

# Brapi Server Variables
BRAPI_DEFAULT_URL=http://localhost:8083
Expand Down Expand Up @@ -73,4 +78,4 @@ STUDY_START_DELAY=10s
TRIAL_START_DELAY=15s
TRAIT_START_DELAY=20s
OBSERVATION_START_DELAY=25s
OBSERVATION_UNIT_START_DELAY=30s
OBSERVATION_UNIT_START_DELAY=30s
6 changes: 2 additions & 4 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ _Please include any details needed for reviewers to test this code_

- [ ] I have performed a self-review of my own code
- [ ] I have tested my code and ensured it meets the acceptance criteria of the story
- [ ] I have tested that my code works with both the brapi-java-server and BreedBase
- [ ] I have create/modified unit tests to cover this change
- [ ] I have create/modified unit and/or integration tests to cover this change or tests are not applicable
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to documentation
- [ ] I have run TAF: _\<please include a link to TAF run>_
- [ ] I have either updated the source of truth or arranged for update with product owner if needed https://breedinginsight.atlassian.net/wiki/spaces/BI/pages/1559953409/Source+of+Truth
27 changes: 22 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,22 @@ name: maven build

on:
pull_request:
type: [opened, edited]
types: [opened, synchronize, edited]
workflow_dispatch:
inputs:
brapi_server_image:
description: 'BrAPI Server Docker Image'
required: false
default: 'breedinginsight/brapi-java-server:develop'
bi_api_branch:
description: 'BI API Branch'
required: false
default: 'develop'

jobs:
build:

runs-on: ubuntu-latest
runs-on: ubuntu-22.04

services:
postgres:
Expand All @@ -38,11 +48,15 @@ jobs:
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

steps:
- uses: actions/checkout@v2
- name: Checkout BI API
uses: actions/checkout@v4
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.bi_api_branch || github.ref }}
- name: Set up JDK 13
uses: actions/setup-java@v1.4.3
uses: actions/setup-java@v4
with:
java-version: 13
distribution: 'zulu'

- name: Build with Maven
run: mvn validate -B flyway:migrate clean install --file pom.xml --settings settings.xml
Expand All @@ -59,4 +73,7 @@ jobs:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
OAUTH_CLIENT_ID: 123abc
OAUTH_CLIENT_SECRET: asdfljkhalkbaldsfjasdfi238497098asdf
BRAPI_REFERENCE_SOURCE: breedinginsight.org
GITHUB_OAUTH_CLIENT_ID: 12345678901234567890
GITHUB_OAUTH_CLIENT_SECRET: 1234567890123456789012345678901234567890
BRAPI_REFERENCE_SOURCE: breedinginsight.org
BRAPI_DOCKER_IMAGE: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.brapi_server_image || 'breedinginsight/brapi-java-server:develop' }}
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ jobs:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
OAUTH_CLIENT_ID: 123abc
OAUTH_CLIENT_SECRET: asdfljkhalkbaldsfjasdfi238497098asdf
GITHUB_OAUTH_CLIENT_ID: 12345678901234567890
GITHUB_OAUTH_CLIENT_SECRET: 1234567890123456789012345678901234567890
BRAPI_REFERENCE_SOURCE: breedinginsight.org
- name: Login to Docker Hub
uses: docker/login-action@v1
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/versioner-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ jobs:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
OAUTH_CLIENT_ID: 123abc
OAUTH_CLIENT_SECRET: asdfljkhalkbaldsfjasdfi238497098asdf
GITHUB_OAUTH_CLIENT_ID: 12345678901234567890
GITHUB_OAUTH_CLIENT_SECRET: 1234567890123456789012345678901234567890
BRAPI_REFERENCE_SOURCE: breedinginsight.org
- name: Login to Docker Hub
uses: docker/login-action@v1
Expand Down
75 changes: 75 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# AGENTS.md

## Scope
- These instructions apply to the whole repository.
- If a subdirectory contains its own `AGENTS.md`, the more specific file wins for that subtree.

## Repository Overview
- Java 13 Maven backend using Micronaut.
- Main application code: `src/main/java/org/breedinginsight`
- Tests: `src/test/java/org/breedinginsight`
- DB migrations: `src/main/resources/db/migration`
- API docs and related materials: `docs`
- Build config: `pom.xml`
- Docker and local setup: `README.md`, `docker-compose.yml`

## Working Rules
- Keep changes narrow and task-focused.
- Prefer fixing root causes over adding one-off workarounds.
- Do not edit `.env`, `.env.test`, `.env.template`, or other secret-bearing config files unless explicitly asked.
- Do not modify `target/`, `.idea/`, or the large SQL dump files unless the task is specifically about them.
- Scope searches to relevant directories instead of scanning the entire repository when possible.
- Do not edit historical Flyway migrations unless explicitly requested. Add a new migration instead.

## Files To Ignore By Default
- `target/`
- `.idea/`

## Validation
- Use Maven for validation.
- Source envs from `.env` when running `mvn` commands by using `set -a`, `source .env`, and `set +a`.
- Preferred targeted test command:
```sh
set -a
source .env
set +a
mvn -Dtest=ClassName test --settings settings.xml
```
- Full test command:
```sh
set -a
source .env
set +a
mvn test --settings settings.xml
```
- Full build without tests:
```sh
set -a
source .env
set +a
mvn clean validate install -D maven.test.skip=true --settings settings.xml
```
- Tests may require Docker, Testcontainers, and local services. If validation cannot run, say exactly what blocked it.

## API Change Rules
- If endpoint behavior changes, do not update the relevant API docs or spec files in `docs`, they are no longer being maintained.
- If API code changes, add or update endpoint or integration tests.

## Database Rules
- Schema changes belong in a new Flyway migration under `src/main/resources/db/migration`.
- If schema changes affect generated jOOQ code, run the documented generation flow.

## Testing Guidance
- Prefer targeted tests for the changed area before suggesting a full test run.
- Prefer high-signal tests over broad or repetitive test coverage.
- Do not add unit tests by default for straightforward changes.
- Add unit tests selectively for hard-to-reproduce bugs, complex logic regressions, or behavior that is difficult or expensive to validate through integration tests.
- Prefer integration or endpoint tests for user-facing and API behavior changes.
- Avoid tests that mainly lock in implementation details or create disproportionate maintenance burden.
- When adding regression coverage, prefer the smallest number of tests that gives confidence in the fix.
- For controller or API changes, look first under `src/test/java/org/breedinginsight/api` and `src/test/java/org/breedinginsight/brapi`.
- For importer work, check `src/test/java/org/breedinginsight/brapps/importer`.

## Response Expectations
- Summarize changed files, validation performed, and any remaining risks.
- If tests or docs updates were skipped, explain why.
2 changes: 2 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ services:
- API_INTERNAL_PORT=${API_INTERNAL_PORT}
- API_INTERNAL_TEST_PORT=${API_INTERNAL_TEST_PORT}
- OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID}
- GITHUB_OAUTH_CLIENT_ID=${GITHUB_OAUTH_CLIENT_ID}
- GITHUB_OAUTH_CLIENT_SECRET=${GITHUB_OAUTH_CLIENT_SECRET}
- JWT_DOMAIN=${JWT_DOMAIN}
- DB_SERVER=${DB_SERVER}
- DB_NAME=${DB_NAME}
Expand Down
23 changes: 21 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@
<geojson-jackson.version>1.14</geojson-jackson.version>
<apache-commons-csv.version>1.9.0</apache-commons-csv.version>
<apache-commons-lang.version>3.12.0</apache-commons-lang.version>
<testcontainers.version>1.16.3</testcontainers.version>
<testcontainers.version>1.21.4</testcontainers.version>
<!-- Version of flyway dependent on version of micronaut -->
<flyway.version>7.7.3</flyway.version>
<guava.version>31.0.1-jre</guava.version>
<okhttp.version>4.9.3</okhttp.version>
<mockito.version>4.3.1</mockito.version>
<brapi-java-client.version>2.1-SNAPSHOT</brapi-java-client.version>
<brapi-java-client.version>2.2.0</brapi-java-client.version>
<commons-io.version>2.11.0</commons-io.version>
<tika-app.version>2.2.1</tika-app.version>
<!-- Version of apache-poi depends on version of tika. Tika uses these. -->
Expand Down Expand Up @@ -192,6 +192,11 @@
<artifactId>micronaut-inject</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-http-client</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-validation</artifactId>
Expand Down Expand Up @@ -536,6 +541,16 @@
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Temporary: skip Gigwa IT until the Gigwa image issue is resolved -->
<excludes>
<exclude>**/GigwaGenotypeServiceImplIntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
Expand Down Expand Up @@ -619,6 +634,10 @@
<url>jdbc:postgresql://${DB_SERVER}/${DB_NAME}</url>
<user>${DB_USER}</user>
<password>${DB_PASSWORD}</password>
<locations>
<location>filesystem:src/main/java/org/breedinginsight/db/migration</location>
<location>filesystem:src/main/resources/db/migration</location>
</locations>
</configuration>
<dependencies>
<dependency>
Expand Down
2 changes: 1 addition & 1 deletion settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<repository>
<id>github-fannypack</id>
<name>FannyPack github repository</name>
<url>https://maven.pkg.github.com/Kowalski-IO/fannypack</url>
<url>https://maven.pkg.github.com/BrandonKowalski/fannypack</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import io.micronaut.security.token.jwt.cookie.JwtCookieLoginHandler;
import io.micronaut.security.token.jwt.generator.AccessRefreshTokenGenerator;
import io.micronaut.security.token.jwt.generator.AccessTokenConfiguration;
import io.micronaut.security.token.jwt.generator.JwtGeneratorConfiguration;
import lombok.extern.slf4j.Slf4j;
import org.breedinginsight.api.model.v1.auth.SignUpJWT;
import org.breedinginsight.model.ProgramUser;
Expand Down Expand Up @@ -83,7 +82,7 @@ public AuthServiceLoginHandler(JwtCookieConfiguration jwtCookieConfiguration,

@Override
public MutableHttpResponse<?> loginSuccess(UserDetails userDetails, HttpRequest<?> request) {
// Called when login to orcid is successful.
// Called when login to OAuth provider is successful.
// Check if our login to our system is successful.
if (request.getCookies().contains(accountTokenCookieName)) {
Cookie accountTokenCookie = request.getCookies().get(accountTokenCookieName);
Expand Down Expand Up @@ -124,7 +123,7 @@ public MutableHttpResponse<?> loginSuccess(UserDetails userDetails, HttpRequest<

private AuthenticatedUser getUserCredentials(UserDetails userDetails) throws AuthenticationException {

Optional<User> user = userService.getByOrcid(userDetails.getUsername());
Optional<User> user = userService.getByOAuthId(userDetails.getUsername());

if (user.isPresent()) {
if (user.get().getActive()) {
Expand Down Expand Up @@ -159,9 +158,20 @@ public MutableHttpResponse<?> loginFailed(AuthenticationResponse authenticationF
}
}

private String parseOAuthProvider(HttpRequest request) {
// The request path will be something like "/sso/success/github".
if (request.getPath().toLowerCase().contains("github")) {
return "github";
} else {
// Default to ORCID.
return "orcid";
}
}

private MutableHttpResponse newAccountCreationResponse(UserDetails userDetails, String accountToken, HttpRequest request) {

String orcid = userDetails.getUsername();
String oAuthId = userDetails.getUsername();
String oAuthProvider = parseOAuthProvider(request);
SignUpJWT signUpJWT;
try {
signUpJWT = signUpJwtService.validateAndParseAccountSignUpJwt(accountToken);
Expand All @@ -185,9 +195,9 @@ private MutableHttpResponse newAccountCreationResponse(UserDetails userDetails,
}

if (newUser.getAccountToken().equals(signUpJWT.getJwtId().toString())) {
// Assign orcid to that user
// Assign OAuth Id and provider to that user.
try {
userService.updateOrcid(newUser.getId(), orcid);
userService.updateOAuthInfo(newUser.getId(), oAuthId, oAuthProvider);
} catch (DoesNotExistException e) {
MutableHttpResponse resp = HttpResponse.seeOther(URI.create(newAccountErrorUrl));
return resp;
Expand Down
32 changes: 32 additions & 0 deletions src/main/java/org/breedinginsight/api/auth/GithubApiClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.breedinginsight.api.auth;

import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.Header;
import io.micronaut.http.client.annotation.Client;
import io.reactivex.Flowable;

@Header(name = "User-Agent", value = "Micronaut")
@Client("https://api.github.com")
public interface GithubApiClient {

@Get("/user")
Flowable<GithubUser> getUser(@Header("Authorization") String authorization);
}

37 changes: 37 additions & 0 deletions src/main/java/org/breedinginsight/api/auth/GithubUser.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.breedinginsight.api.auth;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.micronaut.core.annotation.Introspected;
import lombok.Getter;

@Introspected
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@Getter
public class GithubUser {

private String id;
// The login will be the unique GitHub username.
private String login;
private String name;
private String email;

}

Loading
Loading