Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
e811289
feat: Adds bootstrap time config.json load
frgray Sep 26, 2025
bfc7485
feat: Factors out UI build in to a discrete, independent build process
frgray Sep 26, 2025
d932f5e
Merge pull request #1 from tdgllc/build-normalization
Yona-Appletree Dec 1, 2025
6d71ce4
Add environment version files for Node, Java, Kotlin, and Maven
Yona-Appletree Dec 1, 2025
6bb82fd
Update Maven repositories in `pom.xml`
Yona-Appletree Dec 1, 2025
734b201
Add version validation script and workflow
Yona-Appletree Dec 1, 2025
916ed8a
Update `@types/node` and add `undici-types` dependency in `package-lo…
Yona-Appletree Dec 1, 2025
e1641b9
Update `.gitignore` to exclude Cursor-related files
Yona-Appletree Dec 1, 2025
d2c8e73
Expand GitHub Actions workflows to trigger on `feature/*` and `renova…
Yona-Appletree Dec 1, 2025
549f621
Fix incorrect file path in MySQL Docker container initialization
Yona-Appletree Dec 2, 2025
24ec0ae
Upgrade Testcontainers dependency to version 1.21.3 in `pom.xml`
Yona-Appletree Dec 2, 2025
258fe41
Clean up compiler warnings
Yona-Appletree Dec 2, 2025
6e3f026
Add IDE directories for easier developer onboarding
Yona-Appletree Dec 2, 2025
89b7106
WIP: Upgrade JVM to Java 21
Yona-Appletree Dec 2, 2025
7ddc2b1
Upgrade Kotlin to 2.2.21 (LTS) and fix compatibility issues
Yona-Appletree Dec 2, 2025
0b9179d
Add upgrade notes documenting skipped Spring Boot upgrade
Yona-Appletree Dec 2, 2025
249b935
Upgrade Log4j from 2.17.1 to 2.23.1 (security updates)
Yona-Appletree Dec 2, 2025
d1e1a33
Remove deprecated mysql-connector-java dependency
Yona-Appletree Dec 2, 2025
1fc498d
Upgrade Jackson from 2.14.1 to 2.17.1
Yona-Appletree Dec 2, 2025
4bde4ad
Upgrade Angular from 16 to 18
Yona-Appletree Dec 2, 2025
5ced0db
Update upgrade notes with completed upgrades
Yona-Appletree Dec 2, 2025
58af825
Upgrade Node.js from 18.18.2 to 20.18.0 LTS
Yona-Appletree Dec 3, 2025
198cf96
Replace browserTarget with buildTarget in angular.json
Yona-Appletree Dec 3, 2025
98031ce
Add OSMT UI run configuration file for IntelliJ
Yona-Appletree Dec 3, 2025
6935d3c
Update launch configs
Yona-Appletree Dec 3, 2025
2e9d404
Update .gitignore to rename `.cursor-plans` to `.plans`
Yona-Appletree Dec 3, 2025
2eac906
Update init sql paths to reflect refactor
Yona-Appletree Dec 3, 2025
13790ed
Consolidate GitHub workflows into unified CI pipeline
Yona-Appletree Dec 3, 2025
b7bbd8e
Integrate ui build into maven
Yona-Appletree Dec 3, 2025
dc6216e
Apply auto-formatting and lint fix to all ui files
Yona-Appletree Dec 3, 2025
704101d
Refine eslint rules
Yona-Appletree Dec 3, 2025
10ce594
Ignore existing eslint violations
Yona-Appletree Dec 3, 2025
650f9a0
Disable flaky test in `abstract.service.spec.ts`.
Yona-Appletree Dec 4, 2025
b733466
Update Node.js version to 20.18.3 in `.nvmrc` and Maven configuration
Yona-Appletree Dec 4, 2025
98b8bfb
Automatically add `NO_ERRORS_SCHEMA` in Angular tests to suppress tem…
Yona-Appletree Dec 4, 2025
1085f1b
Update Prettier and make it quieter
Yona-Appletree Dec 4, 2025
fd6818f
Add kotlin compiler option to reduce excess warnings
Yona-Appletree Dec 4, 2025
7615cff
Add dynamic path resolution for MySQL init script in tests
Yona-Appletree Dec 4, 2025
d7f0cd7
Restructure GitHub Actions workflow: split UI, API, and integration t…
Yona-Appletree Dec 4, 2025
71f4059
Skip UI module build in integration tests job
Yona-Appletree Dec 4, 2025
85b78f6
Fix SDKMAN action: remove unsupported sdkmanrc parameter
Yona-Appletree Dec 4, 2025
1cd4e37
Add `.editorconfig` files and enforce code style adjustments across t…
Yona-Appletree Dec 16, 2025
b709020
Migrate `validate-versions.sh` to `bin/` directory and update referen…
Yona-Appletree Dec 16, 2025
698e186
Format project with ktlint
Yona-Appletree Dec 16, 2025
4f98659
Refactor UI debug script, enhance README and CLI, apply code formatti…
Yona-Appletree Dec 16, 2025
f1df6ea
Update Docker stack commands: refine services and adjust compose file…
Yona-Appletree Dec 16, 2025
2390dd7
Comment out integration tests job in GitHub Actions workflow until au…
Yona-Appletree Dec 16, 2025
9566a83
Apply consistent code formatting across the project using ktlint
Yona-Appletree Dec 16, 2025
cec0ef2
Merge pull request #2 from skybridgeskills/feature/cleanup
Yona-Appletree Dec 16, 2025
f456f28
Add single-auth module for development and simple deployments
Yona-Appletree Dec 16, 2025
8b84973
Refactor login component to use pattern library and update single-aut…
Yona-Appletree Dec 18, 2025
600b7d0
Apply spotless code formatting
Yona-Appletree Dec 18, 2025
425f403
Merge pull request #3 from skybridgeskills/feature/noauth-profile
Yona-Appletree Dec 18, 2025
f476194
Add debug logging to docker_entrypoint.sh for profile debugging
Yona-Appletree Jan 23, 2026
3e89179
Change echo_debug to output to stdout instead of stderr
Yona-Appletree Jan 26, 2026
33ef3da
Fix bash syntax error in echo_debug for SPRING_PROFILES_ACTIVE length
Yona-Appletree Jan 26, 2026
ff32343
Fix echo_debug interfering with command substitution
Yona-Appletree Jan 26, 2026
1a86d21
fix(docker): use 'staging' profile instead of 'stage' in get_config_p…
Yona-Appletree Jan 26, 2026
83ceba8
fix(docker): pass Elasticsearch credentials to Spring Boot
Yona-Appletree Jan 27, 2026
8b235b8
fix(docker): add debug logging for Elasticsearch credentials
Yona-Appletree Jan 29, 2026
e1942ea
fix(docker): quote Elasticsearch password to handle special characters
Yona-Appletree Jan 29, 2026
030152d
feat(api): add migrate profile for clean migration exit
Yona-Appletree Feb 17, 2026
7c5fe52
fix(db): use index prefixes for Keyword table to support utf8mb4
Yona-Appletree Feb 18, 2026
2841f70
feat: trigger monorepo VERSION bump on push to develop
Yona-Appletree Feb 23, 2026
48566dc
refactor: trigger osmt-bump-version.yml (renamed from create-osmt-ver…
Yona-Appletree Feb 23, 2026
0f4f16c
chore(release): migrate to main branch and 4.0 versioning
Yona-Appletree Feb 24, 2026
1329191
Merge pull request #5 from skybridgeskills/feature/modern-versions
Yona-Appletree Feb 24, 2026
3e71126
feat: implement public skills page functionality
Yona-Appletree Dec 18, 2025
3869d5b
feat: update AbstractService error handling for better UX
Yona-Appletree Dec 18, 2025
e2d9089
feat: implement public skills page with navigation and search enhance…
Yona-Appletree Dec 18, 2025
f2b6c71
feat: implement public skills page feature
Yona-Appletree Dec 18, 2025
2c52e0e
Remove obsolete cursor plan files and update .gitignore to exclude cu…
Yona-Appletree Dec 18, 2025
b461a12
fix: address public skills PR review feedback
Yona-Appletree Feb 24, 2026
a307860
fix: update ui/pom.xml to 0.0.0-SNAPSHOT
Yona-Appletree Feb 24, 2026
ebb2441
fix(tagging): update version tagging script and documentation to remo…
Yona-Appletree Feb 24, 2026
5f352e7
fix: update ui/pom.xml to 0.0.0-SNAPSHOT
Yona-Appletree Feb 24, 2026
76b6d24
Merge pull request #6 from skybridgeskills/feature/remove-v-prefix
Yona-Appletree Feb 24, 2026
3056e2e
Merge pull request #4 from skybridgeskills/feature/public-skills-page
Yona-Appletree Feb 24, 2026
a3e9d23
feat(api): add /version endpoint for deployment verification
Yona-Appletree Feb 25, 2026
f912b8c
fix(api): make /version and /health publicly accessible via WebSecuri…
Yona-Appletree Feb 25, 2026
c877c88
Merge pull request #7 from skybridgeskills/feature/versioning
Yona-Appletree Feb 25, 2026
65dc0e3
feat: add support for multiple auth providers
Yona-Appletree Feb 26, 2026
cbc2610
refactor(auth): consolidate OAuth2 profiles to single oauth2 profile
Yona-Appletree Feb 26, 2026
cad810a
Merge pull request #8 from skybridgeskills/feature/multi-auth
Yona-Appletree Feb 26, 2026
50f392d
feat(auth): add support for single-auth with OAuth2 integration
Yona-Appletree Feb 26, 2026
ca98ba7
Merge pull request #9 from skybridgeskills/feature/multi-auth
Yona-Appletree Feb 26, 2026
0437db9
fix: never redirect to logout page after login
Yona-Appletree Mar 2, 2026
cdc2620
Merge pull request #10 from skybridgeskills/feature/multi-auth
Yona-Appletree Mar 2, 2026
6a52e9b
Fix OAuth2 logout and public skill navigation bugs
Yona-Appletree Mar 2, 2026
06e22d0
Merge pull request #11 from skybridgeskills/feature/multi-auth
Yona-Appletree Mar 2, 2026
a4e61e9
feat(auth): issue backend JWT for OAuth2 instead of passing IdP token
Yona-Appletree Mar 3, 2026
4d25332
Merge pull request #12 from skybridgeskills/feature/multi-auth
Yona-Appletree Mar 3, 2026
3848bee
Auth security fixes and session flush mode for OAuth2
Yona-Appletree Mar 3, 2026
0937f79
Merge pull request #13 from skybridgeskills/feature/multi-auth
Yona-Appletree Mar 3, 2026
cefab3a
feat(auth): enhance session JWT signing via JWK support and HS256 alg…
Yona-Appletree Mar 3, 2026
3aa5e3e
Fix SessionTokenServiceTest: use non-empty attributes for OAuth2UserA…
Yona-Appletree Mar 3, 2026
202be96
Merge pull request #14 from skybridgeskills/feature/multi-auth
Yona-Appletree Mar 3, 2026
0ae746b
feat(sync): implement Credential Engine sync functionality
Yona-Appletree Mar 2, 2026
d163aa9
feat(credential-engine): add sync state, service, controller (phases …
Yona-Appletree Mar 2, 2026
325d808
feat(sync): add Credential Engine sync integration
Yona-Appletree Mar 4, 2026
46b02ee
feat(sync): implement sync pagination, retry, and error handling
Yona-Appletree Mar 4, 2026
cc1b610
refactor(docs): rename and reorganize auth documentation
Yona-Appletree Mar 4, 2026
c163d28
test(config): switch Karma browser to ChromeHeadless
Yona-Appletree Mar 4, 2026
d009ffe
Sync: composite cursor, workaround, circuit breaker, known-issue doc
Yona-Appletree Mar 5, 2026
7bf758e
feat(sync): add resync, auto-refresh, sections, status inProgress
Yona-Appletree Mar 5, 2026
9097538
Add Tailwind CSS with WGU design tokens
Yona-Appletree Mar 5, 2026
e61bec8
test(sync): improve SyncManagementComponent spec and table formatting
Yona-Appletree Mar 5, 2026
4d63baa
fix(sync): raw JDBC workaround for Exposed cursor id binding bug
Yona-Appletree Mar 5, 2026
8705456
feat(sync): pending count, immediate in-progress, watermark fix, resy…
Yona-Appletree Mar 5, 2026
224f91c
fix(sync): use CompetencyListRequest format for CE standalone compete…
Yona-Appletree Mar 6, 2026
b1809e1
fix(sync): fix count query overcounting and cursor edge cases
Yona-Appletree Mar 9, 2026
33cdacf
feat(sync): hash-based CTID generation using UUIDv5
Yona-Appletree Mar 10, 2026
04c9544
docs(sync): add comprehensive code review documentation
Yona-Appletree Mar 10, 2026
8bfdc54
fix(sync): preserve DATETIME(6) microsecond precision in watermark wr…
Yona-Appletree Mar 10, 2026
4bfdcb5
Replace ForkJoinPool.commonPool with dedicated sync executor
Yona-Appletree Mar 10, 2026
2957247
docs(sync): rewrite CE sync docs for infra consumers
Yona-Appletree Mar 10, 2026
8f0e9ea
Merge pull request #15 from skybridgeskills/feature/sync
Yona-Appletree Mar 11, 2026
946a770
fix(sync): add transaction wrappers for background sync thread
Yona-Appletree Mar 12, 2026
8c196e9
Merge pull request #16 from skybridgeskills/feature/sync
Yona-Appletree Mar 12, 2026
7737c6f
Revert "fix(sync): add transaction wrappers for background sync thread"
Yona-Appletree Mar 12, 2026
24f1add
CE sync: transaction fixes, curl debug log, canonical URL, unpublish-…
Yona-Appletree Mar 16, 2026
e03d95a
fix: use deterministic keyword noise in KeywordEsRepoTest to avoid fl…
Yona-Appletree Mar 16, 2026
23a2a32
Merge pull request #17 from skybridgeskills/feature/sync
Yona-Appletree Mar 16, 2026
bd6d117
CE sync: omit Author/CompetencyCategory, sanitize & in keywords, add …
Yona-Appletree Mar 17, 2026
580f713
Merge pull request #18 from skybridgeskills/feature/sync
Yona-Appletree Mar 17, 2026
8c07bcf
CE sync: add SubjectWebpage to collections for CE validation
Yona-Appletree Mar 17, 2026
3c1af03
feat: add Credential Engine links to skill and collection action bars
Yona-Appletree Mar 17, 2026
7d4ce4e
fix: remove Credential Engine from getCardFormat test expectation
Yona-Appletree Mar 17, 2026
9321138
Merge pull request #19 from skybridgeskills/feature/sync
Yona-Appletree Mar 17, 2026
afccf95
fix: preserve credentialEngineUrl in ApiCollectionV2.fromLatest
Yona-Appletree Mar 17, 2026
a135ccd
Merge pull request #20 from skybridgeskills/feature/sync
Yona-Appletree Mar 17, 2026
a479cc7
CE sync: SubjectWebpage as single URL string, not array
Yona-Appletree Mar 17, 2026
4e1c8a3
Merge pull request #21 from skybridgeskills/feature/sync
Yona-Appletree Mar 17, 2026
ccee957
Fix collection sync: bump updateDate when skills are added/removed
Yona-Appletree Mar 18, 2026
d5b570a
Merge pull request #22 from skybridgeskills/feature/sync
Yona-Appletree Mar 18, 2026
ba7ad69
feat(sync): add individual Sync to CE action on skill and collection …
Yona-Appletree Mar 18, 2026
2b14caf
fix: use /finder/collection/ for CE collection links instead of compe…
Yona-Appletree Mar 18, 2026
2567979
test: fix actionDefinitions count for Sync to Credential Engine action
Yona-Appletree Mar 18, 2026
a504759
Merge pull request #23 from skybridgeskills/feature/sync
Yona-Appletree Mar 18, 2026
a7619c2
docs: bug docs
Yona-Appletree Mar 18, 2026
eb69af2
Fix 868h2319b: Style category names as links
Yona-Appletree Mar 18, 2026
d08c1e3
docs: add plan for public categories (fix auth inconsistency)
Yona-Appletree Mar 18, 2026
4a627fa
feat(auth): make categories publicly accessible
Yona-Appletree Mar 18, 2026
4b9c637
Public pages: nav, collections, categories, and fixes
Yona-Appletree Mar 19, 2026
c08446b
docs: revise public pages feature (UX-first framing)
Yona-Appletree Mar 19, 2026
d7f9602
fix(ui): responsive filter bar and items-per-page row (Tailwind)
Yona-Appletree Mar 19, 2026
5aae556
chore(dev): CE canonical URL default and doc note
Yona-Appletree Mar 19, 2026
92c3e4b
docs: mark 868h23199 results-per-page UI fixed, move to bugs-done
Yona-Appletree Mar 19, 2026
c2f2f54
fix(868h2319f): single-skill CSV via skill detail text/csv
Yona-Appletree Mar 19, 2026
32c86ad
docs: move 868h23198 viewer blank-screen bug to bugs-done
Yona-Appletree Mar 19, 2026
4fe1604
fix(868h2319a): anonymous export XLSX/CSV for public pages
Yona-Appletree Mar 19, 2026
76ae1c2
fix(868h2319c): preserve workspace description when converting to col…
Yona-Appletree Mar 19, 2026
1696187
docs(868h2319d): verify Show All/Fewer pill group; move to bugs-done
Yona-Appletree Mar 19, 2026
5fae38c
fix(868h2319e): pill group overflow by height, not count
Yona-Appletree Mar 19, 2026
bc2ef3f
style(ui): polish pill group Show all / Show fewer control
Yona-Appletree Mar 19, 2026
c832433
fix(ui): polish pill-group toggle (chevron, hover, no active flash)
Yona-Appletree Mar 19, 2026
538ac97
Merge pull request #24 from skybridgeskills/feature/bugs
Yona-Appletree Mar 19, 2026
afdd86a
fix(api): raise type-ahead limit to 100 (868h23197)
Yona-Appletree Mar 19, 2026
a9585ac
fix(api): exact ES totals above 10k for counts and pagination (868h23…
Yona-Appletree Mar 19, 2026
ed08307
ui: improve Credential Engine action icons
Yona-Appletree Mar 19, 2026
b0c8f65
Merge pull request #25 from skybridgeskills/feature/bugs
Yona-Appletree Mar 19, 2026
1bc43f8
feat(ui): vendor WGU pattern library CSS in-repo
Yona-Appletree Mar 20, 2026
ac138bb
Merge pull request #26 from skybridgeskills/feature/style
Yona-Appletree Mar 24, 2026
b58e7ae
feat(ui,api): generic OSMT branding and deployment theming
Yona-Appletree Mar 24, 2026
b72e876
fix(ui): show Sync nav for admins after roles load and on mobile
Yona-Appletree Mar 24, 2026
956015c
style(ui): enlarge generic OSMT text logos and match light to dark
Yona-Appletree Mar 24, 2026
fdc0c9c
fix(api): ignore unknown whitelabel JSON fields in integration test
Yona-Appletree Mar 24, 2026
4879c97
Merge pull request #27 from skybridgeskills/feature/style
Yona-Appletree Mar 24, 2026
52ddb4d
fix(ui): default header logo to logo-light on brand navbar
Yona-Appletree Mar 25, 2026
2639416
Merge pull request #28 from skybridgeskills/feature/style
Yona-Appletree Mar 25, 2026
1f134a9
fix(ui): remove nav overlay doubling; refresh logo SVGs
Yona-Appletree Mar 26, 2026
c0b82a3
Merge pull request #29 from skybridgeskills/feature/style
Yona-Appletree Mar 26, 2026
daca991
fix(ui): use Credential Registry in sync and action bar copy
ottonomy Apr 2, 2026
713449b
Merge pull request #30 from skybridgeskills/feature/update-registry-copy
Yona-Appletree Apr 2, 2026
1a02aa6
fix(api): align server session timeout with JWT expiry
Yona-Appletree Apr 2, 2026
509000a
Allow unauthenticated access to collection search results.
Yona-Appletree Apr 2, 2026
d12ae47
feat(api): unified session expiration via SESSION_EXPIRE_HOURS env var
Yona-Appletree Apr 3, 2026
2e201d2
docs(api): document SESSION_EXPIRE_HOURS in env example files
Yona-Appletree Apr 3, 2026
95d5ab2
feat(richskill): add Add to Workspace on manage skill detail action bar
ottonomy Apr 3, 2026
3e0c2fc
Unify session and JWT expiry on APP_SESSION_TOKEN_EXPIRY_SECONDS
Yona-Appletree Apr 6, 2026
e716d79
Merge pull request #31 from skybridgeskills/feature/fixes
Yona-Appletree Apr 7, 2026
b11cb96
Merge pull request #32 from skybridgeskills/feature/add-to-workspace-…
Yona-Appletree Apr 7, 2026
dfd000e
feat: implement split deployment with read-only profile
Yona-Appletree Apr 13, 2026
b7ff295
refactor: simplify split deployment config surface
Yona-Appletree Apr 14, 2026
318dd99
Merge pull request #33 from skybridgeskills/feature/readonly
Yona-Appletree Apr 14, 2026
409d639
fix: skip ES index creation in readonly profile
Yona-Appletree Apr 15, 2026
d9549c6
Merge pull request #34 from skybridgeskills/feature/readonly
Yona-Appletree Apr 15, 2026
396356a
fix: exclude single-auth beans from readonly profile
Yona-Appletree Apr 15, 2026
2120dfb
chore: remove task logs and gitignore them
Yona-Appletree Apr 15, 2026
718f014
Merge pull request #35 from skybridgeskills/feature/readonly
Yona-Appletree Apr 15, 2026
d4a8f57
fix: proper ES readonly bean naming to prevent index creation
Yona-Appletree Apr 16, 2026
22e7118
fix: proper ES readonly bean naming to prevent index creation
Yona-Appletree Apr 16, 2026
e85c6f6
fix(ui): show only published RSDs on public collection page
Yona-Appletree Apr 16, 2026
a72c667
feat(ui): add unpublish collection with Credential Registry sync
Yona-Appletree Apr 16, 2026
a9ba01f
Merge pull request #36 from skybridgeskills/feature/readonly
Yona-Appletree Apr 16, 2026
552f43a
feat: duplicate collection from manage UI
Yona-Appletree Apr 16, 2026
8f4adb8
fix: update manage-collection test indices for duplicate action
Yona-Appletree Apr 16, 2026
0763261
Merge pull request #37 from skybridgeskills/feature/fixes
Yona-Appletree Apr 16, 2026
6b72ef5
fix(ui): add proper unpublish icon with arrow pointing into box
Yona-Appletree Apr 16, 2026
d141987
feat(ui): improve duplicate naming UX with timestamp suffix
Yona-Appletree Apr 16, 2026
aa2d3b4
style: apply prettier formatting to duplicate naming changes
Yona-Appletree Apr 16, 2026
405d850
test: update SvgHelper spec for new icon-unpublish value
Yona-Appletree Apr 16, 2026
68eae6a
Merge pull request #38 from skybridgeskills/feature/fixes
Yona-Appletree Apr 16, 2026
4da8615
Use public instance URL for authoring canonical links
Yona-Appletree Apr 28, 2026
b047d60
Merge pull request #39 from skybridgeskills/feature/fixes
Yona-Appletree Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 49 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
you are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code.

this project uses SDKMAN for Java/Kotlin/Maven version management. ensure you run `sdk env install` or `sdk env` to load the versions specified in .sdkmanrc before building or running the project.

RUN TESTS before telling the user that you're done.

run format:check before committing (ui/: npm run format:check). run prettier --write to fix any issues.

you are thoughtful, give nuanced answers, and are brilliant at reasoning.

you carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.

before providing an answer, think step by step, and provide a detailed, thoughtful answer.

if you need more information, ask for it.

write tests for your code.

break down complex problems into smaller, more manageable pieces.

place most abstract / general functions first in files.

prefer a one-concept-per-file approach with a matching .spec.ts file.

always write correct, up to date, bug free, fully functional and working code.

focus on performance, readability, and maintainability.

before providing an answer, double check your work

include all required imports, and ensure proper naming of key components

do not nest code more than 2 levels deep

code should obey the rules defined in the .eslintrc.json, .prettierrc, .htmlhintrc, and .editorconfig files

functions and methods should not have more than 4 parameters

functions should not have more than 50 executable lines

lines should not be more than 80 characters

when refactoring existing code, keep jsdoc comments intact

be concise and minimize extraneous prose.

if you don't know the answer to a request, say so instead of making something up.

linting: configure ktlint in .editorconfig, not in mvn.xml
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Dockerfile
/ui/node_modules
/ui/reports
/ui/.angular

# Exclude previously built artifacts
/ui/dist
/api/target
27 changes: 27 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Editor configuration, see https://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{ts,js,json,html,scss,css}]
indent_size = 2

[*.{kt,kts}]
indent_size = 4
max_line_length = 100
ktlint_standard_no-wildcard-imports = disabled
ktlint_standard_property-naming = disabled

[**/test/**/*.{kt,kts}]
ktlint_standard_max-line-length = off

[*.md]
max_line_length = off
trim_trailing_whitespace = false

[*/target/**]
ktlint_standard = disabled
36 changes: 0 additions & 36 deletions .github/workflows/api-tests.yml

This file was deleted.

176 changes: 176 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
name: CI Validation

on:
pull_request:
branches:
- "main"
- "feature/*"
- "renovate/*"

jobs:
version-check:
name: Version Consistency Check
runs-on: ubuntu-latest
if: |
github.event.pull_request.draft == false && (
contains(github.event.pull_request.head.ref, 'skip-ci') == false
)

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Validate version consistency
run: |
chmod +x bin/validate-versions.sh
bin/validate-versions.sh

ui-build-test:
name: UI Build & Tests
runs-on: ubuntu-latest
if: |
github.event.pull_request.draft == false && (
contains(github.event.pull_request.head.ref, 'skip-ci') == false
)

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
cache-dependency-path: ui/package-lock.json

- name: Install dependencies
working-directory: ui
run: npm ci

- name: Build UI
id: ui-build
working-directory: ui
run: |
echo "::group::Building UI"
npm run build-prod
echo "::endgroup::"

- name: Validation (format check)
id: ui-validation
working-directory: ui
run: |
echo "::group::Validating code format"
npm run format:check
echo "::endgroup::"

- name: Lint UI
id: ui-lint
working-directory: ui
run: |
echo "::group::Linting UI code"
npm run lint
echo "::endgroup::"

- name: Test UI
id: ui-test
working-directory: ui
run: |
echo "::group::Running UI tests"
npm run ci-test
echo "::endgroup::"

api-build-test:
name: API Build & Tests
runs-on: ubuntu-latest
if: |
github.event.pull_request.draft == false && (
contains(github.event.pull_request.head.ref, 'skip-ci') == false
)

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: "21"
distribution: "temurin"
cache: "maven"

- name: Setup SDKMAN
uses: sdkman/sdkman-action@master
with:
candidate: maven
version: "3.9.6"

- name: Maven version
run: mvn -version

- name: Build API module
id: api-build
run: |
echo "::group::Building API module"
mvn clean install -pl api -am --batch-mode
echo "::endgroup::"

- name: Run API unit tests
id: api-tests
run: |
echo "::group::Running API unit tests"
mvn test -pl api --batch-mode
echo "::endgroup::"

# integration-tests:
# name: Integration Tests
# runs-on: ubuntu-latest
# needs: [ ui-build-test, api-build-test ]
# if: |
# github.event.pull_request.draft == false && (
# contains(github.event.pull_request.head.ref, 'skip-ci') == false
# )
#
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
#
# - name: Set up JDK 21
# uses: actions/setup-java@v4
# with:
# java-version: "21"
# distribution: "temurin"
# cache: "maven"
#
# - name: Setup SDKMAN
# uses: sdkman/sdkman-action@master
# with:
# candidate: maven
# version: "3.9.6"
#
# - name: Maven version
# run: mvn -version
#
# - name: Build API and test modules
# id: build-all
# run: |
# echo "::group::Building API and test modules"
# mvn clean install -pl api,test -am -DskipTests --batch-mode
# echo "::endgroup::"
#
# - name: Run API integration tests
# id: integration-tests
# run: |
# echo "::group::Running API integration tests"
# mvn verify -pl test -Prun-api-tests --batch-mode
# echo "::endgroup::"
# env:
# OAUTH_CLIENTID: "${{secrets.OAUTH_CLIENTID}}"
# OAUTH_CLIENTSECRET: "${{secrets.OAUTH_CLIENTSECRET}}"
# OAUTH_AUDIENCE: "${{secrets.OAUTH_AUDIENCE}}"
# OAUTH_ISSUER: "${{secrets.OAUTH_ISSUER}}"
# OKTA_USERNAME: "${{secrets.OKTA_USERNAME}}"
# OKTA_PASSWORD: "${{secrets.OKTA_PASSWORD}}"
# OKTA_URL: "${{secrets.OKTA_URL}}"
# BASE_URL: "http://localhost:8080"
# APP_START_CHECK_RETRY_LIMIT: 100
29 changes: 29 additions & 0 deletions .github/workflows/main-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Main push - Version tag

on:
push:
branches:
- main

concurrency:
group: main-push-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: write

jobs:
tag-next-version:
name: Tag next patch version
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Generate and push tag
env:
BRANCH: main
CI: "true"
run: bin/tag-next-version.sh
26 changes: 0 additions & 26 deletions .github/workflows/maven.yml

This file was deleted.

31 changes: 31 additions & 0 deletions .github/workflows/trigger-monorepo-version-bump.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Trigger Monorepo Version Bump

on:
push:
branches:
- main

permissions:
contents: read

jobs:
trigger:
runs-on: ubuntu-latest
steps:
- name: Generate GitHub App token
id: generate-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.MONOREPO_APP_ID }}
private-key: ${{ secrets.MONOREPO_APP_PRIVATE_KEY }}
owner: skybridgeskills
repositories: skybridgeskills-monorepo

- name: Trigger monorepo version bump workflow
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
gh workflow run osmt-bump-version.yml \
--repo skybridgeskills/skybridgeskills-monorepo \
--ref main
echo "✅ Triggered monorepo version bump workflow"
Loading