Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
39d7d8a
Initial commit
Seme30 Mar 11, 2026
bf333c8
Initial commit from Create Next App
Seme30 Mar 5, 2026
24b51cb
feat: add basics
Seme30 Mar 11, 2026
cb48876
feat(auth): init auth
Seme30 Mar 11, 2026
aeea70c
feat: initial commit
Seme30 Mar 14, 2026
a80122d
chore(ui): initialize shadcn/ui and refactor pages
Seme30 Mar 14, 2026
0bd440a
chore: migrate to pnpm
Seme30 Mar 14, 2026
8f7ad47
style: apply custom fonts (Inter, Source Code Pro, Rasa) and theme co…
Seme30 Mar 14, 2026
75fe392
changed README.md
Seme30 Mar 14, 2026
4025f41
Add JWT authentication
Seme30 Mar 16, 2026
6b76aeb
Rollback web port to 3000
Seme30 Mar 24, 2026
f9dd017
Require JWT config via environment
Seme30 Mar 24, 2026
68bdc05
fix: open redirect replaced with known redirects and JWT secret fall…
Seme30 Mar 25, 2026
8f025f8
fix: Sonar security issues: remove hardcoded URLs, prevent open redir…
Seme30 Mar 25, 2026
27972a7
fix: sonar security and complexity issues, add CI test defaults
Seme30 Mar 25, 2026
5b80dfa
fix: disabled false flags
Seme30 Mar 25, 2026
ff2577f
fix: add using Atlas_Web; to Program.cs
Seme30 Mar 25, 2026
d3f1034
Add JWT config to CI workflows and suppress Sonar false positives
Seme30 Mar 25, 2026
5d656c1
Merge pull request #683 from atlas-bi/feature/jwt-auth
christopherpickering Mar 26, 2026
4f85cf6
Add report API parity endpoints
Seme30 Apr 1, 2026
6e52d32
add :3001 to allowed origins
Seme30 Apr 1, 2026
98b47ce
Merge pull request #685 from atlas-bi/feature/reports-api
christopherpickering Apr 2, 2026
fef26b8
feat(api): extend /me endpoint with roles, permissions and adminEnabled
Seme30 Apr 7, 2026
b955b8b
fix(ci): bump lighthouse workflow to node 18
Seme30 Apr 7, 2026
d5c570e
Merge pull request #686 from atlas-bi/feature/saml-jwt-auth
christopherpickering Apr 8, 2026
43aa1a7
chore(deps) Update all non-major dependencies (#687)
renovate[bot] Apr 12, 2026
c5c1166
chore(deps) Update dependency @rollup/plugin-babel to v7 (#688)
renovate[bot] Apr 12, 2026
fd0f655
feat(reports): add report api with feature flags and permission gates
Seme30 Apr 15, 2026
2ba2925
Merge pull request #690 from atlas-bi/feat/reports-api
christopherpickering Apr 15, 2026
7f964fd
feature:ui main page reimplementation
vbeni30 Apr 21, 2026
3aae32a
feature:centralized error handling
vbeni30 Apr 24, 2026
9e192dc
Checks: Biome + typecheck + tests
vbeni30 Apr 24, 2026
c57370f
Mechanical lint/format fixes (pure cleanup)
vbeni30 Apr 24, 2026
83dc310
refactor: improve auth flow and update UI components
vbeni30 Apr 24, 2026
64fd75c
feat: update global styles and add theme provider
vbeni30 Apr 24, 2026
06e12ff
refactor: update API base, report types, and utility functions
vbeni30 Apr 24, 2026
fa0355e
style: apply biome formatting to config files
vbeni30 Apr 24, 2026
259bec9
feat: precommit setup
vbeni30 Apr 27, 2026
551eee0
test: hooks
vbeni30 Apr 27, 2026
333ba58
feat(biome): excluded global.css from biome scanning
vbeni30 Apr 28, 2026
6c6eee0
Merge branch 'ui' into 'main'
Seme30 May 4, 2026
f8c5d4f
feat: add SearchApiController with Solr-backed full-text search
May 4, 2026
fb3b6cc
fix: remove dead constant and add missing lookup types
May 4, 2026
6868c0a
fix(sonar): regex
May 4, 2026
dfd81e7
fi(ci): coverage by switching tests to dotnet collector
May 5, 2026
7e6bab0
Merge pull request #691 from atlas-bi/feat/search-api
christopherpickering May 5, 2026
7d9da06
feat(collections): add collections api
May 6, 2026
a35a17b
Merge pull request #692 from atlas-bi/feat/collections-api
christopherpickering May 7, 2026
2fdb6d5
feat(api): add interactions and profile API endpoints
May 7, 2026
d05249e
Merge pull request #693 from atlas-bi/feat/shared-interaction
christopherpickering May 7, 2026
e92f679
ref: profile API query handling and resolve Sonar issues in profile/i…
May 7, 2026
43040a2
feat(search): new feature integrating /api/search end-to-end
vbeni30 May 8, 2026
6a67781
feat(homr): enable users to submit from home search box directly into…
vbeni30 May 8, 2026
3f46d81
ref: Rename ProfileQueryOptions.ReportType to ReportTypes to fix Coda…
May 8, 2026
5a44693
Merge pull request #694 from atlas-bi/feat/shared-interaction
christopherpickering May 9, 2026
ee2e6de
chore(deps) Update dependency BrowserStackLocal to v3
renovate[bot] May 9, 2026
293e856
chore(deps) Update dependency coverlet.collector to v8
renovate[bot] May 9, 2026
c31dcfb
chore(deps) Update dependency node to v22
renovate[bot] May 9, 2026
322138b
chore(deps) Update dependency Slugify.Core to v5
renovate[bot] May 9, 2026
1f165be
Merge pull request #657 from atlas-bi/renovate/node-22.x
christopherpickering May 12, 2026
a162ef6
Merge pull request #681 from atlas-bi/renovate/coverlet.collector-8.x
christopherpickering May 12, 2026
ae16b94
Merge pull request #662 from atlas-bi/renovate/slugify.core-5.x
christopherpickering May 12, 2026
7ddb6fe
Merge pull request #648 from atlas-bi/renovate/browserstacklocal-3.x
christopherpickering May 12, 2026
5e2526a
feat: add docker compose deployment with Next.js Dockerfile and stand…
May 12, 2026
ea934f9
fix: remove other images from docker compose
May 12, 2026
628dc39
fix: pre-activate pnpm in Dockerfile to resolve build failure
May 12, 2026
474d23d
fix: replace corepack with npm install -g for reliable pnpm setup in …
May 12, 2026
fe69e55
fix: pnpm install
May 12, 2026
58f84e8
feat(collections): integrate collections API
vbeni30 May 14, 2026
056e46c
feat(auth): extend permission union for collection roles
vbeni30 May 14, 2026
aea6934
Merge branch 'ui' into 'main'
Seme30 May 14, 2026
8a3bcc9
feat(interactions): add interactions API client and server actions
vbeni30 May 15, 2026
da0934d
feat(interactions): add star, share. and feedback UI components
vbeni30 May 15, 2026
a355954
feat(profile): add profile analytics API and panel components
vbeni30 May 15, 2026
b8b61a2
feat(reports): extend reports API for edit, typehead, and image upload
vbeni30 May 15, 2026
1fcf2a0
feat(reports): add documentation edit page and image upload
vbeni30 May 15, 2026
58c1589
feat(reports): wire interactions and profile on report detail
vbeni30 May 15, 2026
2c3c009
feat(collections): wire star toggle and share on collection detail
vbeni30 May 15, 2026
e812894
Merge branch 'ui' into 'main'
Seme30 May 18, 2026
49b59e0
chore: add demo admin local auth setup
Seme30 May 19, 2026
456c491
fix: restrict content security policy frame ancestors
Seme30 May 19, 2026
cae2da2
ref: added new env var
Seme30 May 19, 2026
91ebdd0
Merge pull request #706 from atlas-bi/chore/demo-admin-local-auth
christopherpickering May 21, 2026
17ac526
Add users API with workspace and Razor parity support
Seme30 May 21, 2026
e889b0f
fix: address Codacy findings in users API services
Seme30 May 21, 2026
f90cdbd
Merge pull request #707 from atlas-bi/feat/users-api
christopherpickering May 21, 2026
0e2fe1e
feat(collection): collection detail parity + section structure + acti…
vbeni30 May 27, 2026
890cabc
feat(collections): snippet/card rendering for linked entities and lis…
vbeni30 May 27, 2026
b21ef5d
feat(collections): markdown rendering for description/purpose
vbeni30 May 27, 2026
cc291d8
feat(interactions): add icon-only variants for share and star actions
vbeni30 May 27, 2026
4460dda
feat(terms): add Razor-parity terms API with approval-aware permissions
Seme30 May 30, 2026
3c87e10
Merge branch 'ui' into 'main'
Seme30 May 30, 2026
b04e3c0
Merge pull request #708 from atlas-bi/feat/terms_api
christopherpickering May 30, 2026
68ebf8b
feat(collections): refine detail page layout and section hierarchy
vbeni30 May 30, 2026
8c1bcdf
feat(collections): use media-style snippet cards for linked entities
vbeni30 May 30, 2026
2666e22
feat(collections): improve markdown and editor form visual parity
vbeni30 May 30, 2026
6b06439
Merge branch 'ui' into 'main'
Seme30 Jun 1, 2026
47266ce
refine homepage shell parity and legacy nav behavior
Seme30 Jun 3, 2026
e7e203a
fix: added new libraries
Seme30 Jun 4, 2026
10f7ce4
refactor(api): align users admin checks with permission-based RBAC
Seme30 Jun 4, 2026
f6a82f4
fix(api): add missing authorization import for users controller
Seme30 Jun 4, 2026
d52ff91
Merge pull request #709 from atlas-bi/feat/groups-api
christopherpickering Jun 6, 2026
61b4369
chore(deps) Update mcr.microsoft.com/mssql/server Docker tag to v2025
renovate[bot] Jun 6, 2026
9e5b9a8
Merge pull request #684 from atlas-bi/dev
christopherpickering Jun 8, 2026
558f998
Merge pull request #705 from atlas-bi/renovate/mcr.microsoft.com-mssq…
christopherpickering Jun 8, 2026
7dae601
Disable SQL Server core dumps
Seme30 Jun 11, 2026
84b5fed
Allow request access director search on open
Seme30 Jun 12, 2026
ae49504
fix: pass public api url to docker build
Seme30 Jun 12, 2026
a9088a8
Merge frontend history into frontend directory
Seme30 Jun 12, 2026
8113205
chore: integrate nextjs compose setup
Seme30 Jun 13, 2026
4b14061
Merge pull request #713 from atlas-bi/nextjs-atlas-changes
christopherpickering Jun 13, 2026
15d2ed9
Merge pull request #712 from atlas-bi/sqlserver-disable-core-dumps
christopherpickering Jun 15, 2026
02dff41
chore(deps): migrate config renovate.json
renovate[bot] Jun 15, 2026
755851f
feat(collections): gold list cards and shared library shell
vbeni30 Jun 9, 2026
47110d3
style(ui): atlas typography, gold card tokens, and font weights
vbeni30 Jun 9, 2026
26e763f
feat(collections): footer action variants on list cards
vbeni30 Jun 9, 2026
9b69c66
feat(interactions): add shared action-rail primitives and entity dialogs
vbeni30 Jun 11, 2026
7370107
feat(reports): add report action rail with run-attachment modal
vbeni30 Jun 11, 2026
7a7af16
refactor(collections): migrate collection action rail to shared inter…
vbeni30 Jun 11, 2026
d8c57a6
feat(interactions): unify card-footer interactions across list, home,…
vbeni30 Jun 11, 2026
3539580
fix(interactions): align share mail defaults and star labels with Razor
vbeni30 Jun 11, 2026
88982e0
fix(interactions): keep profile sheets server-safe in client card foo…
vbeni30 Jun 11, 2026
91d66fe
feat(interactions): add shared tooltip and action-rail grouping primiti
vbeni30 Jun 15, 2026
2bc2784
feat(interactions): standardize tooltips and rail button styling on e…
vbeni30 Jun 15, 2026
27452d1
refactor(interactions): group engagement and admin actions in detail …
vbeni30 Jun 15, 2026
670f20a
feat(interactions): unify card footer layout and omit unavailable act…
vbeni30 Jun 15, 2026
9908d96
feat(snippets): move report run affordance into snippet card header
vbeni30 Jun 15, 2026
4039832
fix: align home tabs props after frontend import
Seme30 Jun 16, 2026
cf26df0
ci: fix renovate migration checks
Seme30 Jun 16, 2026
bfbd5e7
Merge pull request #715 from atlas-bi/nextjs-atlas-changes
christopherpickering Jun 16, 2026
eeef75d
Merge branch 'dev' into pr-714
christopherpickering Jun 16, 2026
8d04d3d
Merge pull request #716 from atlas-bi/pr-714
Seme30 Jun 16, 2026
dbb41c5
feat(groups): add types and API client for groups endpoints
vbeni30 Jun 16, 2026
544ec92
feat(groups): add native groups list and detail page
vbeni30 Jun 16, 2026
8e7faaa
feat(groups): add tabbed group detail tables and run-list panel
vbeni30 Jun 16, 2026
06b1f83
feat(groups): serve /groups natively and link groups from reports
vbeni30 Jun 16, 2026
4736606
chore(release): 3.15.2 [skip ci]
semantic-release-bot Feb 12, 2024
9c1803c
test: hooks
vbeni30 Apr 27, 2026
9287226
fix: resolve merge conflict in reports page groups section
vbeni30 Jun 17, 2026
2decfeb
Merge branch 'dev' into feat/issue-5
christopherpickering Jun 17, 2026
2540d5e
fix: let coolify own web health checks
Seme30 Jun 17, 2026
3ff8998
Merge pull request #724 from atlas-bi/fix/coolify-compose-health-gate
christopherpickering Jun 17, 2026
879e9f5
fix: pass demo auth flag to web service
Seme30 Jun 17, 2026
28594f6
fix: persist frontend auth before redirect
Seme30 Jun 17, 2026
08eea52
fix(reports): resolve merge conflict in reports page groups section
vbeni30 Jun 17, 2026
fd060f1
Merge pull request #725 from atlas-bi/fix/coolify-demo-auth-web
christopherpickering Jun 18, 2026
04f933b
Merge pull request #723 from atlas-bi/feat/issue-5
christopherpickering Jun 18, 2026
56c34af
fix: force public auth redirect origin
Seme30 Jun 18, 2026
e1ffeef
fix: force public auth redirect origin
Seme30 Jun 18, 2026
7fef705
feat(profile): add date range presets and filter-aware profile data l…
vbeni30 Jun 19, 2026
685a37a
feat(profile): add full profile layout with sidebar, tabs, charts, an…
vbeni30 Jun 19, 2026
6864b7a
feat(profile): wire full profile view into analytics panels and entit…
vbeni30 Jun 19, 2026
e8e9900
feat(users): add types, API client, and workspace server actions
vbeni30 Jun 24, 2026
ae6107e
feat(users): add stars workspace, tabs, and profile section components
vbeni30 Jun 24, 2026
e4655a6
feat(users): add native users page and remove legacy rewrite
vbeni30 Jun 24, 2026
be667e9
Merge pull request #728 from atlas-bi/feat/issue-719-users-api
christopherpickering Jun 24, 2026
b44e1ac
Merge pull request #727 from atlas-bi/feat/issue-6-profile-ui
christopherpickering Jun 24, 2026
a3c3d24
Merge pull request #726 from atlas-bi/fix/next-auth-public-redirect-o…
christopherpickering Jun 24, 2026
42815a3
Merge pull request #711 from atlas-bi/dev
christopherpickering Jun 25, 2026
81c1eea
fix(users): repair frontend build regressions
Seme30 Jun 25, 2026
042312d
feat(users): restore full analytics workspace
Seme30 Jun 25, 2026
7fecfc4
fix(auth): stabilize local and deployed Next flows
Seme30 Jun 25, 2026
839e1cb
feat(users): align profile page with Razor shell
Seme30 Jun 25, 2026
146b799
fix(users): align shell auth and workspace styling
Seme30 Jun 25, 2026
9ca860c
Merge remote-tracking branch 'origin/dev' into feat/issue-719-users-api
Seme30 Jun 25, 2026
ad2a5bc
Merge pull request #729 from atlas-bi/feat/issue-719-users-api
christopherpickering Jun 26, 2026
562024c
Merge pull request #730 from atlas-bi/dev
christopherpickering Jun 26, 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
11 changes: 10 additions & 1 deletion .github/workflows/lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '16.x'
node-version: '22.x'
- name: install node deps
run: npm install
- name: node build
Expand All @@ -38,10 +38,19 @@ jobs:
install: localdb
- name: migrate
run: .\.dotnet-tools\dotnet-ef database update --project web/web.csproj
env:
Jwt__Key: "lighthouse-ci-test-jwt-key-minimum-32-characters-required"
Jwt__Issuer: "atlas-lighthouse-ci"
Jwt__Audience: "atlas-lighthouse-ci"
- name: run Lighthouse CI
run: |
npm install -g @lhci/cli@0.9.x
lhci autorun
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
LHCI_TOKEN: ${{ secrets.LHCI_TOKEN }}
Jwt__Key: "lighthouse-ci-test-jwt-key-minimum-32-characters-required"
Jwt__Issuer: "atlas-lighthouse-ci"
Jwt__Audience: "atlas-lighthouse-ci"
Cors__AllowedOrigins__0: "http://localhost:3000"
Auth__DefaultCallbackPath: "/auth/callback"
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '20.x'
node-version: '22.x'
- name: install node deps
run: npm install --ignore-scripts --no-audit --no-fund
- name: Semantic Release
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,13 @@
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Jwt__Key: "sonar-ci-test-jwt-key-minimum-32-characters-required-for-build"
Jwt__Issuer: "atlas-sonar-ci"
Jwt__Audience: "atlas-sonar-ci"
Cors__AllowedOrigins__0: "http://localhost:3000"
Auth__DefaultCallbackPath: "/auth/callback"
shell: powershell
run: |
.\.sonar\scanner\dotnet-sonarscanner begin /k:"atlas-bi_atlas-bi-library" /o:"atlas-bi" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io"
dotnet build
.\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"

Check warning on line 50 in .github/workflows/sonar.yml

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Avoid expanding secrets in a run block.

See more on https://sonarcloud.io/project/issues?id=atlas-bi_atlas-bi-library&issues=AZ7-_wFdQoNZNZLJIvVJ&open=AZ7-_wFdQoNZNZLJIvVJ&pullRequest=710
44 changes: 38 additions & 6 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: '22.x'

- name: install node deps
run: npm install --ignore-scripts --no-audit --no-fund
Expand All @@ -41,7 +41,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: '22.x'
- name: install node deps
run: npm install --ignore-scripts --no-audit --no-fund
- name: node build
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: '22.x'
- name: setup java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654
with:
Expand All @@ -94,7 +94,6 @@ jobs:
run: npm run build
- name: install dotnet deps
run: |
dotnet tool install -g coverlet.console
dotnet tool install -g dotnet-reportgenerator-globaltool
dotnet restore
- name: build
Expand All @@ -109,6 +108,21 @@ jobs:
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}

- name: collect coverage file
if: always()
shell: pwsh
run: |
$coverageFile = Get-ChildItem -Path TestResults -Recurse -Filter coverage.cobertura.xml |
Sort-Object LastWriteTimeUtc -Descending |
Select-Object -First 1

if ($coverageFile) {
Copy-Item $coverageFile.FullName coverage.cobertura.xml -Force
Write-Host "Copied coverage file from $($coverageFile.FullName)"
} else {
Write-Host "Coverage file not found under TestResults"
}

- name: console coverage
if: always()
run: |
Expand All @@ -126,6 +140,8 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de
with:
files: ./coverage.cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
verbose: true

# browser_tests:
Expand Down Expand Up @@ -204,7 +220,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: '22.x'
- name: setup java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654
with:
Expand All @@ -216,7 +232,6 @@ jobs:
run: npm run build
- name: install dotnet deps
run: |
dotnet tool install -g coverlet.console
dotnet tool install -g dotnet-reportgenerator-globaltool
dotnet restore
- name: build
Expand All @@ -231,6 +246,21 @@ jobs:
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}

- name: collect coverage file
if: always()
shell: pwsh
run: |
$coverageFile = Get-ChildItem -Path TestResults -Recurse -Filter coverage.cobertura.xml |
Sort-Object LastWriteTimeUtc -Descending |
Select-Object -First 1

if ($coverageFile) {
Copy-Item $coverageFile.FullName coverage.cobertura.xml -Force
Write-Host "Copied coverage file from $($coverageFile.FullName)"
} else {
Write-Host "Coverage file not found under TestResults"
}

- name: console coverage
if: always()
run: |
Expand All @@ -248,4 +278,6 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de
with:
files: ./coverage.cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
verbose: true
47 changes: 36 additions & 11 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
version: '3.9'

services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
image: mcr.microsoft.com/mssql/server:2025-latest
container_name: atlas_sqlserver
environment:
ACCEPT_EULA: 'Y'
MSSQL_SA_PASSWORD: ${SERVICE_PASSWORD_SQLSERVER:-StrongPassword!123}
MSSQL_PID: ${MSSQL_PID:-Evaluation}
expose:
- 1433
ulimits:
core: 0
volumes:
- sqlserver_data:/var/opt/mssql
healthcheck:
Expand Down Expand Up @@ -45,7 +45,7 @@ services:
test:
[
'CMD-SHELL',
'wget -qO- http://localhost:${SOLR_PORT:-8983}/solr/admin/ping | grep -q ''"status":"OK"''',
'wget -qO- http://127.0.0.1:${SOLR_PORT:-8983}/solr/atlas/admin/ping | grep -q ''"status":"OK"''',
]
interval: 15s
timeout: 5s
Expand All @@ -66,19 +66,44 @@ services:
- solr
- sqlserver
environment:
PORT: ${WEB_PORT:-3000}
PORT: ${WEB_PORT:-5000}
Demo: ${DEMO:-true}
SEED_DEMO: ${SEED_DEMO:-true}
DEMO_ADMIN_USERNAME: ${DEMO_ADMIN_USERNAME:-local-admin}
Jwt__Key: ${JWT_KEY}
Jwt__Issuer: ${JWT_ISSUER}
Jwt__Audience: ${JWT_AUDIENCE}
expose:
- ${WEB_PORT:-3000}
- ${WEB_PORT:-5000}
ports:
- '${WEB_PORT:-3000}:${WEB_PORT:-3000}'
- '${WEB_PORT:-5000}:${WEB_PORT:-5000}'

frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
API_URL: http://web:${WEB_PORT:-5000}
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:5000}
container_name: atlas_frontend
depends_on:
- web
environment:
API_URL: http://web:${WEB_PORT:-5000}
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:5000}
AUTH_RETURN_URL_ORIGIN: ${AUTH_RETURN_URL_ORIGIN:-http://localhost:3000}
DEMO: ${DEMO:-true}
DEMO_ADMIN_USERNAME: ${DEMO_ADMIN_USERNAME:-local-admin}
expose:
- 3000
ports:
- '${FRONTEND_PORT:-3000}:3000'
healthcheck:
test:
['CMD-SHELL', 'wget -qO- http://localhost:${WEB_PORT:-3000}/ || exit 1']
test: ['CMD-SHELL', 'wget -qO- http://127.0.0.1:3000/ || exit 1']
interval: 15s
timeout: 5s
retries: 10
start_period: 20s
retries: 5
start_period: 15s

volumes:
sqlserver_data:
4 changes: 4 additions & 0 deletions frontend/.czrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"path": "cz-conventional-changelog"
}

5 changes: 5 additions & 0 deletions frontend/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.next
node_modules
.git
.env*
!.env.example
41 changes: 41 additions & 0 deletions frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
23 changes: 23 additions & 0 deletions frontend/.husky/_/husky.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env sh
# Minimal husky shim

if [ -z "$husky_skip_init" ]; then
debug () {

Check warning on line 5 in frontend/.husky/_/husky.sh

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an explicit return statement at the end of the function.

See more on https://sonarcloud.io/project/issues?id=atlas-bi_atlas-bi-library&issues=AZ7-_wEvQoNZNZLJIvVC&open=AZ7-_wEvQoNZNZLJIvVC&pullRequest=710
if [ "${HUSKY_DEBUG}" = "1" ]; then
echo "husky (debug) - $1"
fi
}

readonly hook_name="$(basename "$0")"
debug "starting $hook_name..."

if [ "$HUSKY" = "0" ]; then
debug "HUSKY=0, skipping hook"
exit 0
fi

if [ -f ~/.huskyrc ]; then
debug "sourcing ~/.huskyrc"
. ~/.huskyrc
fi
fi
5 changes: 5 additions & 0 deletions frontend/.husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

pnpm -s exec commitlint --edit "$1"

53 changes: 53 additions & 0 deletions frontend/.husky/install.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import fs from "node:fs"
import path from "node:path"
import { fileURLToPath } from "node:url"

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const root = path.resolve(__dirname, "..")
const huskyDir = path.join(root, ".husky")

// Avoid running in CI environments (mirrors common Husky patterns)
if (process.env.CI) {
process.exit(0)
}

const hooksDir = path.join(root, ".git", "hooks")
if (!fs.existsSync(hooksDir)) {
// Not a git checkout (or .git missing) – silently no-op.
process.exit(0)
}

const huskySh = `#!/usr/bin/env sh
# Minimal husky shim

if [ -z "$husky_skip_init" ]; then
debug () {
if [ "\${HUSKY_DEBUG}" = "1" ]; then
echo "husky (debug) - $1"
fi
}

readonly hook_name="$(basename "$0")"
debug "starting $hook_name..."

if [ "$HUSKY" = "0" ]; then
debug "HUSKY=0, skipping hook"
exit 0
fi

if [ -f ~/.huskyrc ]; then
debug "sourcing ~/.huskyrc"
. ~/.huskyrc
fi
fi
`

const ensureDir = (p) => {
if (!fs.existsSync(p)) fs.mkdirSync(p, { recursive: true })
}

ensureDir(path.join(huskyDir, "_"))

// Minimal husky shim so the hook scripts can run consistently.
fs.writeFileSync(path.join(huskyDir, "_", "husky.sh"), huskySh, "utf8")
5 changes: 5 additions & 0 deletions frontend/.husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

pnpm lint-staged

6 changes: 6 additions & 0 deletions frontend/.husky/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# Commitizen interactive prompt (like the other project)
exec < /dev/tty && pnpm -s exec cz --hook || exit 0

Loading
Loading