Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
1a7484e
Init repo
Jan 5, 2026
a2f6c91
add logger to migration context
Jan 12, 2026
2cf9468
add migration for creating admin user and group
Jan 12, 2026
8725af8
merging permission
Jan 21, 2026
02e180e
refactor: update DatabaseApp to use PermissionPers instead of Databas…
Jan 21, 2026
3ebb4e5
Refactor space permissions and introduce drawing functionality
Jan 21, 2026
1d0ca65
feat: enhance row item details with user information and update tracking
Jan 25, 2026
12dfd35
feat: add user information fields to RowItem and GetRowOutput
Jan 25, 2026
0c72c94
feat: add tracking for row creation and updates with CreatedUser and …
Jan 25, 2026
d007004
feat: add updated_by field to database_row and user references in mig…
Jan 25, 2026
7475538
feat: update row retrieval to preload CreatedUser and UpdatedUser fields
Jan 25, 2026
65e6972
feat: enhance row listing and retrieval with UpdatedByUser information
Jan 25, 2026
c03f5a5
feat: add UserInfo struct and update RowItem and GetRowResponse to in…
Jan 25, 2026
c8854bd
feat: add ListUsers endpoint to retrieve user list with pagination
Jan 25, 2026
6624ab4
feat: add ListUsers endpoint to retrieve a simplified list of users f…
Jan 25, 2026
1dea6bf
feat: implement ListUsersRequest and ListUsersResponse DTOs for user …
Jan 25, 2026
4cc16e5
feat: add position field to documents, databases, and drawings; imple…
Jan 28, 2026
4d794c8
feat: update OpenAPI export configuration; remove format field and st…
moutonjeremy Jan 29, 2026
4b9e8de
feat: implement static file serving and setup application routes for SPA
moutonjeremy Jan 29, 2026
d35ee2d
chore: update subproject commit reference in UI module
moutonjeremy Jan 29, 2026
a244861
feat: implement move and search functionality for databases and drawi…
Jan 31, 2026
cc4c791
fix: correct environment variable name for npm authentication in CI w…
Jan 31, 2026
f86e35d
chore: remove ui submodule and associated configuration
Jan 31, 2026
0f7659d
chore: add ui submodule and initial commit reference
Jan 31, 2026
0fdd60c
fix: update npm registry URL and correct output directory for UI build
Jan 31, 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
52 changes: 52 additions & 0 deletions .air.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
args_bin = []
bin = "./start.sh"
cmd = "go build -o ./tmp/main cmd/cmd.go"
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata", ".dev"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "html"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = []
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false

[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"

[log]
main_only = false
silent = false
time = false

[misc]
clean_on_exit = false

[proxy]
app_port = 0
enabled = false
proxy_port = 0

[screen]
clear_on_rebuild = false
keep_scroll = true
73 changes: 73 additions & 0 deletions .github/workflows/nightly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Nightly Build

on:
schedule:
- cron: '0 0 * * *' # Runs every day at midnight

permissions:
contents: write
packages: write

env:
REGISTRY: ghcr.io
IMAGE: ${{ github.repository }}

jobs:
build:
name: Build
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
cache-dependency-path: go.sum

- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ui/package-lock.json

# get date for versioning
- name: Get date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV

- name: Build ui
run: |
cd ui
npm install
node_modules/.bin/vite build --outDir ../pkg/app/static/files

- name: Build app
run: CGO_ENABLED=1 GOOS=linux go build -a -ldflags '-linkmode external -extldflags "-static" -X "main.version=nightly-${{ steps.date.outputs.date }}"' -o bin/app cmd/cmd.go

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE }}
tags: |
type=schedule,pattern=nightly

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
51 changes: 51 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: PR

on:
pull_request:
branches:
- main

permissions:
contents: write
packages: write

jobs:
build:
name: Build
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
cache-dependency-path: go.sum

- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ui/package-lock.json
registry-url: 'https://npm.pkg.github.com'

- uses: nowsprinting/check-version-format-action@v3
if: github.event_name != 'pull_request'
id: version
with:
prefix: 'v'

- name: Build ui
run: |
cd ui
npm install
node_modules/.bin/vite build --outDir ../infrastructure/static/files
env:
NPM_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build app
run: CGO_ENABLED=1 GOOS=linux go build -a -ldflags '-linkmode external -extldflags "-static" -X "main.version=${{ steps.version.outputs.full }}"' -o bin/app cmd/cmd.go
76 changes: 76 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write
packages: write

env:
REGISTRY: ghcr.io
IMAGE: ${{ github.repository }}

jobs:
build:
name: Build
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
cache-dependency-path: go.sum

- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ui/package-lock.json
registry-url: 'https://npm.pkg.github.com'

- uses: nowsprinting/check-version-format-action@v3
if: github.event_name != 'pull_request'
id: version
with:
prefix: 'v'

- name: Build ui
run: |
cd ui
npm install
node_modules/.bin/vite build --outDir ../infrastructure/static/files

- name: Build app
run: CGO_ENABLED=1 GOOS=linux go build -a -ldflags '-linkmode external -extldflags "-static" -X "main.version=${{ steps.version.outputs.full }}"' -o bin/app cmd/cmd.go

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE }}

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# If you prefer the allow list template instead of the deny list, see community template:
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
#
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/

# Go workspace file
go.work
go.work.sum

# env file
.env

tmp/

database.db
database.sqlite
.DS_Store

.claude
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "ui"]
path = ui
url = git@github.com:Labbs/nexo-ui.git
11 changes: 11 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM golang:1.25 as builder

WORKDIR /app
COPY bin/app /app/bin/app

FROM alpine:latest as release
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY --from=builder /app/bin/app .
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Loading