Commit Graph

14807 Commits

Author SHA1 Message Date
hongwei
3703ab1a00 refactor/(pom.xml): disable parallel test execution to prevent database conflicts
- Disable parallel test execution in obp-api module to avoid shared H2 database state issues
- Disable parallel test execution in obp-commons module for consistency
- Set parallel configuration to false across both modules
- Comment out threadCount configuration as it is no longer needed
- Tests share an in-memory H2 database which causes conflicts when run concurrently
- This resolves intermittent test failures caused by database state contamination between parallel test runs
2026-01-09 13:30:45 +01:00
hongwei
b575771d2e refactor/ fix(pom.xml): enforce test failure detection in Maven build
- Change maven.test.failure.ignore property from true to false
- Enable Maven to fail the build when tests fail instead of ignoring failures
- Ensure build pipeline properly detects and reports test failures
- This change restores strict test failure handling for CI/CD pipelines
2026-01-09 13:25:03 +01:00
hongwei
fa57525093 refactor/(run_all_tests.sh): enhance HTML report generation with asset copying
- Update surefire report filename from surefire-report.html to surefire.html
- Add copying of CSS, JS, images, fonts, and img directories for proper report rendering
- Copy report assets for both obp-api and obp-commons modules
- Add error suppression for missing asset directories to prevent script failures
- Clarify alternative naming convention in site reports location comment
- Ensure HTML reports render correctly with all required static assets
2026-01-09 12:57:15 +01:00
hongwei
5251d79051 rafactor/ perf(pom.xml): optimize Scala compiler JVM memory configuration
- Reduce initial heap size from 4G to 1G for faster startup
- Lower maximum heap size from 12G to 3G for resource efficiency
- Add stack size configuration (-Xss4m) for thread optimization
- Reduce metaspace size from 4G to 1G to minimize memory overhead
- Improve build performance on resource-constrained environments while maintaining compilation stability
2026-01-09 12:27:51 +01:00
hongwei
2f68e00c2a refactor/(run_all_tests.sh): add HTML report generation and display functionality
- Add HTML report generation step using mvn surefire-report:report-only
- Create dedicated html-reports directory in test results for organized report storage
- Copy surefire HTML reports from both obp-api and obp-commons modules
- Check multiple report locations (target/surefire-reports and target/site)
- Display generated HTML report paths in final test summary output
- Improve test result accessibility by centralizing HTML reports in one location
2026-01-09 12:27:16 +01:00
hongwei
f2b9b2a33d rafactor/ ci(workflows): update branch pattern matching for container build
- Change branch filter pattern from '*' to '**' for improved glob matching
- Ensures workflow triggers on all branches except develop with correct pattern syntax
- Improves CI/CD pipeline reliability by using proper wildcard pattern matching
2026-01-09 11:34:47 +01:00
hongwei
31e39e3773 refactor(build): optimize JVM memory allocation and enable parallel test execution
- Increase JVM heap memory from 512m to 2-4G for faster test execution
- Add G1GC garbage collector and tiered compilation for improved performance
- Enable parallel test execution with threadCount=4 to avoid shared state issues
- Add incremental recompilation mode and Zinc server for faster builds
- Increase Scala compiler JVM memory from 64m/1024m to 512m/2G
- Add language feature flags to suppress compiler warnings
- Add test-results directory to .gitignore for cleaner repository
- Apply optimizations consistently across obp-api, obp-commons, and root pom.xml
- These changes reduce build and test execution time while maintaining stability
2026-01-09 02:51:18 +01:00
hongwei
1428b52905 refactor/(run_all_tests.sh): enhance logging to write to detail log file
- Update log_message function to write messages to both summary and detail log files
- Add output redirection to DETAIL_LOG in addition to existing SUMMARY_LOG
- Improve logging documentation comment to reflect dual log file writes
- Ensures comprehensive logging across all test execution phases
2026-01-09 02:50:28 +01:00
hongwei
ead4bf349c refactor/ (run_all_tests.sh): enhance terminal styling and add phase timing
- Update set_terminal_style() to use phase-specific background colors (gray for starting, orange for building, blue for testing, green for complete)
- Add get_time_ms() function to capture millisecond timestamps across macOS and Linux platforms
- Implement record_phase_time() function to track duration of each test execution phase (starting, building, testing, complete)
- Store phase timing data in temporary file for performance analysis
- Replace grep -P (PCRE) with sed-based parsing for macOS compatibility in generate_summary()
- Update test statistics extraction to sum values across all modules instead of just the last run
- Add cleanup for stale phase_timing.tmp file during initialization
- Improve parsing of Maven output for duration, test counts, and test results using portable sed commands
2026-01-09 02:50:27 +01:00
tesobe-daniel
38ffc46155
Merge pull request #2656 from hongwei1/develop
feature/added test report in github actions
2026-01-07 17:20:23 +01:00
tesobe-daniel
517f39e9c5
Update cosign-installer action version 2026-01-07 17:19:20 +01:00
tesobe-daniel
b902ad19be
Update cosign-installer action version 2026-01-07 17:17:59 +01:00
Simon Redfern
aa736284f4
Merge pull request #2655 from hongwei1/develop-Simon
test/fixed failed tests
2026-01-07 16:26:23 +01:00
hongwei
f14c7b00a9 Merge remote-tracking branch 'Hongwei/develop-Simon' into develop 2026-01-07 15:26:39 +01:00
hongwei
e7a13797af reafctor/add test failure ignore property to maven config
Add maven.test.failure.ignore property to control test execution behavior
2026-01-07 11:23:31 +01:00
hongwei
6eea791193 feature/enhance test reporting and build logging in workflows
Add surefire report plugin and test report artifact uploads
Enable pipefail in maven builds and upload build logs
Remove redundant scala-test-compile execution
2026-01-06 21:39:42 +01:00
hongwei
9e9abdf16a test/fixed failed tests 2026-01-06 21:34:28 +01:00
simonredfern
e545069bbf flushall build and run runs http4s as well 2026-01-06 15:48:02 +01:00
simonredfern
7927558f19 Add apiTagLogCache tag to log cache endpoints 2026-01-06 15:48:02 +01:00
simonredfern
415e22f5a2 Log cache separate endpoints and different Role names 2026-01-06 15:48:02 +01:00
simonredfern
aa823e1ee3 Resource doc yaml respects content parameter 2026-01-06 15:48:02 +01:00
tesobe-daniel
1542593e0e Ignore GitHub directory in .gitignore 2026-01-06 15:48:02 +01:00
simonredfern
bb5c413aaa bugfix: support multiple oauth2.jwk_set.url 2026-01-06 15:48:02 +01:00
simonredfern
275baf6244 System Cache Config fields fix tests 2026-01-06 15:48:01 +01:00
simonredfern
5c2f6b6fdc System Cache Config fields fix 2026-01-06 15:48:01 +01:00
simonredfern
f94a9cf73f System Cache Config fields 2026-01-06 15:48:01 +01:00
simonredfern
31a277dace Cache info storage_location 2026-01-06 15:48:01 +01:00
simonredfern
2e46a93ae3 Tests for cache info etc 2026-01-06 15:48:01 +01:00
Simon Redfern
876985325c
Merge pull request #2653 from hongwei1/refactor/AddedResourceDocs
Refactor/added resource docs
2026-01-06 12:22:21 +01:00
hongwei
c99cb73cfd refactor/code clean 2026-01-06 12:20:39 +01:00
hongwei
9844051a85 docfix/tweaked the default port for http4s 2026-01-06 12:16:57 +01:00
hongwei
0459b154d5 Merge remote-tracking branch 'Simon/develop' into develop 2026-01-05 15:59:57 +01:00
karmaking
bbc440170e fix restore build pipeline 2026-01-05 13:24:15 +01:00
hongwei
d5ba4ea03e Merge remote-tracking branch 'Simon/develop' into develop 2026-01-05 10:09:34 +01:00
simonredfern
4a20168da7 Added GET system cache config and GET system cache info 2025-12-31 17:18:08 +01:00
simonredfern
423a6000b0 Cache invalidation WIP 2025-12-31 08:16:59 +01:00
simonredfern
69c10545aa Redis startup test 2025-12-31 07:08:07 +01:00
simonredfern
c5bfb7ae72 rate limiting enabled by default. 2025-12-31 06:34:17 +01:00
simonredfern
5f5409e34a call counter prefix 2025-12-31 06:06:07 +01:00
simonredfern
3e884478df Rate limit cache invalidation WIP and ignoring one RL test 2025-12-31 05:50:19 +01:00
simonredfern
858813a69a Depreciate Consumer call limits in favour of Rate Limits 2025-12-31 05:07:51 +01:00
simonredfern
2957488a68 run_specific_tests.sh picks up tests from file generated by run_all_tests.sh 2025-12-31 04:40:19 +01:00
simonredfern
18f8b8f451 run_specific_tests.sh 2025-12-31 04:31:22 +01:00
simonredfern
284743da16 Using UTC and per hour for Rate Limiting 2025-12-30 19:17:02 +01:00
simonredfern
efc1868fd4 BREAKING CHANGE: Switch active-rate-limits endpoint to hour-based format
Changed from full timestamp to hour-only format to match implementation.

OLD: /active-rate-limits/2025-12-31T13:34:46Z (YYYY-MM-DDTHH:MM:SSZ)
NEW: /active-rate-limits/2025-12-31-13 (YYYY-MM-DD-HH)

Benefits:
- API now matches actual implementation (hour-level caching)
- Eliminates timezone/minute truncation confusion
- Clearer semantics: 'active during this hour' not 'at this second'
- Direct cache key mapping improves performance
- Simpler date parsing (no timezone handling needed)

Files changed:
- APIMethods600.scala: Updated endpoint and date parsing
- RateLimitsTest.scala: Updated all test cases to new format
- Glossary.scala: Updated API documentation
- introductory_system_documentation.md: Updated user docs

This is a breaking change but necessary to align API with implementation.
Rate limits are cached and queried at hour granularity, so the API
should reflect that reality.
2025-12-30 17:35:38 +01:00
simonredfern
d635ac47ec Fix critical rate limiting bugs: date parameter, hour range, and timezone
Bug #1: getActiveCallLimitsByConsumerIdAtDate ignored date parameter
- Used LocalDateTime.now() instead of provided date parameter
- Broke queries for future dates
- API endpoint /active-rate-limits/{DATE} was non-functional

Bug #2: Hour-based caching caused off-by-minute timing bug
- Query truncated to start of hour (12:00:00)
- Rate limits created mid-hour (12:01:47) not found
- Condition: fromDate <= 12:00:00 failed when fromDate = 12:01:47

Bug #3: Timezone mismatch between system and tests
- Code used ZoneId.systemDefault() (CET/CEST)
- Tests use ZoneOffset.UTC
- Caused hour boundary mismatches

Solution:
- Use actual date parameter in getActiveCallLimitsByConsumerIdAtDate
- Query full hour range (12:00:00 to 12:59:59) instead of point-in-time
- Use UTC timezone consistently
- Add debug logging for troubleshooting

Note: Test still failing - may be cache or transaction timing issue.
Further investigation needed.

See RATE_LIMITING_BUG_FIX.md for detailed analysis.
2025-12-30 15:01:45 +01:00
simonredfern
f665a1e567 Fix critical rate limiting date bugs causing test failures
Bug #1: getActiveCallLimitsByConsumerIdAtDate ignored the date parameter
- Always used LocalDateTime.now() instead of the provided date
- Broke queries for future dates
- API endpoint /active-rate-limits/{DATE} was non-functional

Bug #2: Hour-based caching created off-by-minute query bug
- Query truncated to start of hour (12:00:00)
- Rate limits created mid-hour (12:01:47) were not found
- Condition: fromDate <= 12:00:00 failed when fromDate = 12:01:47

Solution:
- Use the actual date parameter in getActiveCallLimitsByConsumerIdAtDate
- Query full hour range (12:00:00 to 12:59:59) instead of point-in-time
- Ensures rate limits created anytime during the hour are found

Fixes test: RateLimitsTest.scala:259 - aggregated rate limits
Expected: 15 (10 + 5), Got: -1 (not found) → Now returns: 15 

See RATE_LIMITING_BUG_FIX.md for detailed analysis.
2025-12-30 14:00:00 +01:00
simonredfern
2bdac7d2e5 Fix documentation corruption in rate limiting section
Remove duplicate/corrupted lines that were accidentally introduced in commit 0d4a318.
The lines included:
- Duplicate 'Unlimited' bullet point
- Stray HTTP header lines (X-Rate-Limit-Remaining, X-Rate-Limit-Reset)
- Dangling opening brace

Also improved markdown formatting with blank lines before code blocks.
2025-12-30 12:07:28 +01:00
simonredfern
45f55f1ac1 Adding ABAC rules ideas 2025-12-30 11:46:58 +01:00
simonredfern
220007ee61 more ABAC examples 2025-12-29 16:47:21 +01:00