replace vault by kasier
This commit is contained in:
@@ -7,6 +7,10 @@ backend/uploads/*
|
|||||||
.env
|
.env
|
||||||
backend/.env
|
backend/.env
|
||||||
|
|
||||||
|
# Uploads locaux transitoires (racine / backend)
|
||||||
|
uploads/
|
||||||
|
backend/uploads/*
|
||||||
|
|
||||||
# Android / Gradle
|
# Android / Gradle
|
||||||
mobile-kotlin/local.properties
|
mobile-kotlin/local.properties
|
||||||
mobile-kotlin/.gradle/
|
mobile-kotlin/.gradle/
|
||||||
|
|||||||
+17
-10
@@ -1,4 +1,4 @@
|
|||||||
# Pipeline GitLab pour VaultDrop — CI + Release.
|
# Pipeline GitLab pour Kazier — CI + Release.
|
||||||
#
|
#
|
||||||
# Prérequis runner :
|
# Prérequis runner :
|
||||||
# - Un runner avec executor Docker pour les jobs d'images (postgres service,
|
# - Un runner avec executor Docker pour les jobs d'images (postgres service,
|
||||||
@@ -28,6 +28,7 @@ variables:
|
|||||||
ANDROID_IMAGE: "cimg/android:2024.01"
|
ANDROID_IMAGE: "cimg/android:2024.01"
|
||||||
GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle-home"
|
GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle-home"
|
||||||
CGO_ENABLED: "0"
|
CGO_ENABLED: "0"
|
||||||
|
GLAB_VERSION: "1.118.0"
|
||||||
|
|
||||||
default:
|
default:
|
||||||
interruptible: true
|
interruptible: true
|
||||||
@@ -62,10 +63,10 @@ test-backend:
|
|||||||
- name: $POSTGRES_IMAGE
|
- name: $POSTGRES_IMAGE
|
||||||
alias: postgres
|
alias: postgres
|
||||||
variables:
|
variables:
|
||||||
POSTGRES_DB: vaultdrop_test
|
POSTGRES_DB: kazier_test
|
||||||
POSTGRES_USER: vaultdrop
|
POSTGRES_USER: kazier
|
||||||
POSTGRES_PASSWORD: vaultdrop
|
POSTGRES_PASSWORD: kazier
|
||||||
TEST_DATABASE_URL: postgres://vaultdrop:vaultdrop@postgres:5432/vaultdrop_test?sslmode=disable
|
TEST_DATABASE_URL: postgres://kazier:kazier@postgres:5432/kazier_test?sslmode=disable
|
||||||
script:
|
script:
|
||||||
- mkdir -p .go-cache && export GOPATH="$CI_PROJECT_DIR/.go-cache"
|
- mkdir -p .go-cache && export GOPATH="$CI_PROJECT_DIR/.go-cache"
|
||||||
- go mod download
|
- go mod download
|
||||||
@@ -93,11 +94,11 @@ build-backend:
|
|||||||
script:
|
script:
|
||||||
- export VERSION=$(cat VERSION)
|
- export VERSION=$(cat VERSION)
|
||||||
- mkdir -p backend/bin
|
- mkdir -p backend/bin
|
||||||
- cd backend && CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X main.version=$VERSION" -o bin/vaultdrop-server cmd/server/main.go
|
- cd backend && CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X main.version=$VERSION" -o bin/kazier-server cmd/server/main.go
|
||||||
- ./bin/vaultdrop-server --version
|
- ./bin/kazier-server --version
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- backend/bin/vaultdrop-server
|
- backend/bin/kazier-server
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
|
|
||||||
# --------------------------------------------------------------- docker ----
|
# --------------------------------------------------------------- docker ----
|
||||||
@@ -153,9 +154,15 @@ release-apk:
|
|||||||
fi
|
fi
|
||||||
- ./gradlew :app:assembleRelease -q
|
- ./gradlew :app:assembleRelease -q
|
||||||
- cd "$CI_PROJECT_DIR"
|
- cd "$CI_PROJECT_DIR"
|
||||||
|
- |
|
||||||
|
# glab : création de la GitLab Release + upload de l'APK en asset.
|
||||||
|
curl -sSLf \
|
||||||
|
"https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_amd64.tar.gz" \
|
||||||
|
| tar xz --strip-components=1 -C /usr/local/bin bin/glab
|
||||||
|
- glab --version
|
||||||
- export GITLAB_TOKEN="$GITLAB_API_TOKEN"
|
- export GITLAB_TOKEN="$GITLAB_API_TOKEN"
|
||||||
- glab release create "v$VERSION"
|
- glab release create "v$VERSION"
|
||||||
--name "VaultDrop v$VERSION"
|
--name "Kazier v$VERSION"
|
||||||
--notes-file CHANGELOG.md
|
--notes-file CHANGELOG.md
|
||||||
"mobile-kotlin/app/build/outputs/apk/release/app-release.apk"
|
"mobile-kotlin/app/build/outputs/apk/release/app-release.apk"
|
||||||
needs: ["docker"]
|
needs: ["docker"]
|
||||||
@@ -180,7 +187,7 @@ release-docker:
|
|||||||
: "${DOCKERHUB_TOKEN:?DOCKERHUB_TOKEN manquant}"
|
: "${DOCKERHUB_TOKEN:?DOCKERHUB_TOKEN manquant}"
|
||||||
: "${DOCKERHUB_NAMESPACE:?DOCKERHUB_NAMESPACE manquant}"
|
: "${DOCKERHUB_NAMESPACE:?DOCKERHUB_NAMESPACE manquant}"
|
||||||
echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin docker.io
|
echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin docker.io
|
||||||
IMAGE="$DOCKERHUB_NAMESPACE/vaultdrop"
|
IMAGE="$DOCKERHUB_NAMESPACE/kazier"
|
||||||
docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$IMAGE:$CI_COMMIT_TAG"
|
docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$IMAGE:$CI_COMMIT_TAG"
|
||||||
docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$IMAGE:latest"
|
docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$IMAGE:latest"
|
||||||
docker push "$IMAGE:$CI_COMMIT_TAG"
|
docker push "$IMAGE:$CI_COMMIT_TAG"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# VaultDrop
|
# Kazier
|
||||||
|
|
||||||
## Project Status
|
## Project Status
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ Tests mobiles : JVM unit tests dans `app/src/test` (JUnit + Robolectric + Room i
|
|||||||
|
|
||||||
## Frontend Structure (mobile-kotlin)
|
## Frontend Structure (mobile-kotlin)
|
||||||
|
|
||||||
- Entry point: `app/src/main/java/com/vaultdrop/mobile/VaultDropApplication.kt` (Hilt + `HiltWorkerFactory`) + `MainActivity.kt` (Hilt) ; navigation Compose dans `ui/navigation/` (`NavGraph.kt`, `VaultDropApp.kt`)
|
- Entry point: `app/src/main/java/com/kazier/mobile/KazierApplication.kt` (Hilt + `HiltWorkerFactory`) + `MainActivity.kt` (Hilt) ; navigation Compose dans `ui/navigation/` (`NavGraph.kt`, `KazierApp.kt`)
|
||||||
- Data layer — `data/`:
|
- Data layer — `data/`:
|
||||||
- `data/local/` — Room SQLite (DB `dot.db`, **version 7**, `Migrations.kt` : tables `folders`, `files`, `user_preferences`, `pending_operations`) : entités Folder/File/UserPreference/PendingOperation, DAO, tri (`FileOrdering`) ; flag `processed` sur `files` (mode review « traiter », local au device, **gate de sync** : un fichier pas encore traité n'est jamais poussé) ; outbox transactionnel `pending_operations` (v7)
|
- `data/local/` — Room SQLite (DB `dot.db`, **version 7**, `Migrations.kt` : tables `folders`, `files`, `user_preferences`, `pending_operations`) : entités Folder/File/UserPreference/PendingOperation, DAO, tri (`FileOrdering`) ; flag `processed` sur `files` (mode review « traiter », local au device, **gate de sync** : un fichier pas encore traité n'est jamais poussé) ; outbox transactionnel `pending_operations` (v7)
|
||||||
- `data/remote/` — Retrofit/Moshi : `ApiService.kt` + `dto/Dtos.kt` = **contrat HTTP** (`{ data, meta }`, erreurs `{ error: { code, message } }`) ; `ApiClient.kt` normalise les réponses ; interceptors OkHttp (`AuthInterceptor`, `ServerUrlInterceptor`)
|
- `data/remote/` — Retrofit/Moshi : `ApiService.kt` + `dto/Dtos.kt` = **contrat HTTP** (`{ data, meta }`, erreurs `{ error: { code, message } }`) ; `ApiClient.kt` normalise les réponses ; interceptors OkHttp (`AuthInterceptor`, `ServerUrlInterceptor`)
|
||||||
|
|||||||
+4
-1
@@ -1,10 +1,13 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
Toutes les modifications notables de VaultDrop sont documentées ici.
|
Toutes les modifications notables de Kazier sont documentées ici.
|
||||||
Le format suit [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/) et le versioning est [SemVer](https://semver.org/lang/fr/).
|
Le format suit [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/) et le versioning est [SemVer](https://semver.org/lang/fr/).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changé
|
||||||
|
- **Renommage : VaultDrop → Kazier.** Marque, package Android (`com.kazier.mobile`), module Go (`github.com/kazier/backend`), binaire/image `kazier-server`, creds Postgres par défaut. Le code interne `dot.db` est conservé.
|
||||||
|
|
||||||
### Ajouté
|
### Ajouté
|
||||||
- Pipeline de release CI (GitLab) : lint, tests backend/mobile, build Docker, signature APK release, publication GitLab Release + Docker Hub.
|
- Pipeline de release CI (GitLab) : lint, tests backend/mobile, build Docker, signature APK release, publication GitLab Release + Docker Hub.
|
||||||
- `backend/Dockerfile` multi-stage : image de production avec Tesseract (fra+eng) embarqué, user non-root, labels OCI.
|
- `backend/Dockerfile` multi-stage : image de production avec Tesseract (fra+eng) embarqué, user non-root, labels OCI.
|
||||||
|
|||||||
@@ -623,7 +623,7 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
VaultDrop — personal document vault, local-first.
|
Kazier — personal document vault, local-first.
|
||||||
Copyright (C) 2026 Thirdshop
|
Copyright (C) 2026 Thirdshop
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
# VaultDrop
|
# Kazier
|
||||||
|
|
||||||
VaultDrop est un coffre-fort de documents personnel, local-first. Le client Android reflète le SAF dans une base Room et pousse les métadonnées de ses mutations via un outbox transactionnel vers le serveur Go/PostgreSQL — pas d'upload physique, pas de cloud-dépendance.
|
Kazier est un coffre-fort de documents personnel, local-first. Le client Android reflète le SAF dans une base Room et pousse les métadonnées de ses mutations via un outbox transactionnel vers le serveur Go/PostgreSQL — pas d'upload physique, pas de cloud-dépendance.
|
||||||
|
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
|
|
||||||
Disponible sur [thirdshop.fr](https://thirdshop.fr/en/applications/vault/)
|
Disponible sur [thirdshop.fr](https://thirdshop.fr/en/applications/kazier/)
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Serveur
|
# Serveur
|
||||||
PORT=8080
|
PORT=8080
|
||||||
DATABASE_URL=postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable
|
DATABASE_URL=postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable
|
||||||
UPLOAD_DIR=./uploads
|
UPLOAD_DIR=./uploads
|
||||||
MAX_FILE_SIZE_MB=50
|
MAX_FILE_SIZE_MB=50
|
||||||
OCR_LANG=fra+eng
|
OCR_LANG=fra+eng
|
||||||
|
|||||||
+9
-9
@@ -14,7 +14,7 @@ ARG VERSION
|
|||||||
RUN CGO_ENABLED=0 GOOS=linux go build \
|
RUN CGO_ENABLED=0 GOOS=linux go build \
|
||||||
-trimpath \
|
-trimpath \
|
||||||
-ldflags "-s -w -X main.version=${VERSION}" \
|
-ldflags "-s -w -X main.version=${VERSION}" \
|
||||||
-o /out/vaultdrop-server \
|
-o /out/kazier-server \
|
||||||
./cmd/server/main.go
|
./cmd/server/main.go
|
||||||
|
|
||||||
# --- runtime: mince, Tesseract (fra+eng) embarqué pour l'OCR ---
|
# --- runtime: mince, Tesseract (fra+eng) embarqué pour l'OCR ---
|
||||||
@@ -30,30 +30,30 @@ WORKDIR /app
|
|||||||
|
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
LABEL org.opencontainers.image.title="vaultdrop-server" \
|
LABEL org.opencontainers.image.title="kazier-server" \
|
||||||
org.opencontainers.image.description="VaultDrop backend API (Go/Gin + PostgreSQL) — local-first document vault" \
|
org.opencontainers.image.description="Kazier backend API (Go/Gin + PostgreSQL) — local-first document vault" \
|
||||||
org.opencontainers.image.version="${VERSION}" \
|
org.opencontainers.image.version="${VERSION}" \
|
||||||
org.opencontainers.image.licenses="AGPL-3.0-only" \
|
org.opencontainers.image.licenses="AGPL-3.0-only" \
|
||||||
org.opencontainers.image.source="https://gitlab.com/thirdshop-org/dot" \
|
org.opencontainers.image.source="https://gitlab.com/thirdshop-org/dot" \
|
||||||
org.opencontainers.image.url="https://thirdshop.fr/en/applications/vault/" \
|
org.opencontainers.image.url="https://thirdshop.fr/en/applications/kazier/" \
|
||||||
org.opencontainers.image.created="${BUILD_DATE}" \
|
org.opencontainers.image.created="${BUILD_DATE}" \
|
||||||
org.opencontainers.image.revision=""
|
org.opencontainers.image.revision=""
|
||||||
|
|
||||||
COPY --from=builder /out/vaultdrop-server /usr/local/bin/vaultdrop-server
|
COPY --from=builder /out/kazier-server /usr/local/bin/kazier-server
|
||||||
|
|
||||||
# UPLOAD_DIR persistant, user non-root
|
# UPLOAD_DIR persistant, user non-root
|
||||||
RUN mkdir -p /app/uploads \
|
RUN mkdir -p /app/uploads \
|
||||||
&& adduser -D -H -u 10001 vaultdrop \
|
&& adduser -D -H -u 10001 kazier \
|
||||||
&& chown vaultdrop:vaultdrop /app/uploads
|
&& chown kazier:kazier /app/uploads
|
||||||
VOLUME /app/uploads
|
VOLUME /app/uploads
|
||||||
|
|
||||||
ENV PORT=8080 \
|
ENV PORT=8080 \
|
||||||
UPLOAD_DIR=/app/uploads
|
UPLOAD_DIR=/app/uploads
|
||||||
|
|
||||||
USER vaultdrop
|
USER kazier
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
|
||||||
CMD wget -q -O - http://127.0.0.1:8080/api/v1/health || exit 1
|
CMD wget -q -O - http://127.0.0.1:8080/api/v1/health || exit 1
|
||||||
|
|
||||||
ENTRYPOINT ["vaultdrop-server"]
|
ENTRYPOINT ["kazier-server"]
|
||||||
@@ -12,13 +12,13 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/config"
|
"github.com/kazier/backend/config"
|
||||||
"github.com/vaultdrop/backend/db"
|
"github.com/kazier/backend/db"
|
||||||
"github.com/vaultdrop/backend/handlers"
|
"github.com/kazier/backend/handlers"
|
||||||
"github.com/vaultdrop/backend/ocr"
|
"github.com/kazier/backend/ocr"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "dev"
|
var version = "dev"
|
||||||
@@ -31,7 +31,7 @@ func newRouter() *gin.Engine {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if len(os.Args) > 1 && os.Args[1] == "--version" {
|
if len(os.Args) > 1 && os.Args[1] == "--version" {
|
||||||
fmt.Printf("vaultdrop-server %s\n", version)
|
fmt.Printf("kazier-server %s\n", version)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/models"
|
"github.com/kazier/backend/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUserCreation(t *testing.T) {
|
func TestUserCreation(t *testing.T) {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ func LoadApplicationConfig() (*ApplicationConfig, error) {
|
|||||||
|
|
||||||
return &ApplicationConfig{
|
return &ApplicationConfig{
|
||||||
Port: port,
|
Port: port,
|
||||||
DatabaseURL: get("DATABASE_URL", "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable"),
|
DatabaseURL: get("DATABASE_URL", "postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable"),
|
||||||
UploadDir: get("UPLOAD_DIR", "./uploads"),
|
UploadDir: get("UPLOAD_DIR", "./uploads"),
|
||||||
MaxFileSizeMB: int64(maxSize),
|
MaxFileSizeMB: int64(maxSize),
|
||||||
OcrLang: get("OCR_LANG", "fra+eng"),
|
OcrLang: get("OCR_LANG", "fra+eng"),
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ func TestLoadApplicationDefaults(t *testing.T) {
|
|||||||
if cfg.MaxFileSizeMB != 50 {
|
if cfg.MaxFileSizeMB != 50 {
|
||||||
t.Errorf("MaxFileSizeMB = %d, attendu 50", cfg.MaxFileSizeMB)
|
t.Errorf("MaxFileSizeMB = %d, attendu 50", cfg.MaxFileSizeMB)
|
||||||
}
|
}
|
||||||
if cfg.DatabaseURL != "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_dev?sslmode=disable" {
|
if cfg.DatabaseURL != "postgres://kazier:kazier@localhost:5432/kazier_dev?sslmode=disable" {
|
||||||
t.Errorf("DatabaseURL défaut inattendu: %q", cfg.DatabaseURL)
|
t.Errorf("DatabaseURL défaut inattendu: %q", cfg.DatabaseURL)
|
||||||
}
|
}
|
||||||
if cfg.UploadDir != "./uploads" {
|
if cfg.UploadDir != "./uploads" {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultTestDatabaseURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_migrations_test?sslmode=disable"
|
const defaultTestDatabaseURL = "postgres://kazier:kazier@localhost:5432/kazier_migrations_test?sslmode=disable"
|
||||||
|
|
||||||
func testDatabaseURL(t *testing.T) string {
|
func testDatabaseURL(t *testing.T) string {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/lib/pq"
|
"github.com/lib/pq"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/db"
|
"github.com/kazier/backend/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
// OpenTestDatabase ensures the test database exists, resets its schema, runs
|
// OpenTestDatabase ensures the test database exists, resets its schema, runs
|
||||||
@@ -27,7 +27,7 @@ func OpenTestDatabase(t *testing.T, databaseURL string) *sql.DB {
|
|||||||
databaseURL = os.Getenv("TEST_DATABASE_URL")
|
databaseURL = os.Getenv("TEST_DATABASE_URL")
|
||||||
}
|
}
|
||||||
if databaseURL == "" {
|
if databaseURL == "" {
|
||||||
databaseURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_test?sslmode=disable"
|
databaseURL = "postgres://kazier:kazier@localhost:5432/kazier_test?sslmode=disable"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Postgres joignable ? (sinon on skippe, sans être gênés par l'existence
|
// Postgres joignable ? (sinon on skippe, sans être gênés par l'existence
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
module github.com/vaultdrop/backend
|
module github.com/kazier/backend
|
||||||
|
|
||||||
go 1.26.4
|
go 1.26.4
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/pkg/passwd"
|
"github.com/kazier/backend/pkg/passwd"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LoginRequest struct {
|
type LoginRequest struct {
|
||||||
|
|||||||
@@ -9,17 +9,17 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/pkg/passwd"
|
"github.com/kazier/backend/pkg/passwd"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
const authTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_handlers_auth_test?sslmode=disable"
|
const authTestURL = "postgres://kazier:kazier@localhost:5432/kazier_handlers_auth_test?sslmode=disable"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
authTestPassword = "vaultdrop-test-password"
|
authTestPassword = "kazier-test-password"
|
||||||
authTestDevice = "0123456789abcdef0123456789abcdef"
|
authTestDevice = "0123456789abcdef0123456789abcdef"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
var deviceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
var deviceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
func intParam(value string, fallback int) int {
|
func intParam(value string, fallback int) int {
|
||||||
|
|||||||
@@ -11,15 +11,15 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
"github.com/vaultdrop/backend/handlers"
|
"github.com/kazier/backend/handlers"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/pkg/passwd"
|
"github.com/kazier/backend/pkg/passwd"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
const handlersTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_handlers_test?sslmode=disable"
|
const handlersTestURL = "postgres://kazier:kazier@localhost:5432/kazier_handlers_test?sslmode=disable"
|
||||||
|
|
||||||
type envelope struct {
|
type envelope struct {
|
||||||
Data json.RawMessage `json:"data"`
|
Data json.RawMessage `json:"data"`
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package handlers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Health(c *gin.Context) {
|
func Health(c *gin.Context) {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ocrJobRequest struct {
|
type ocrJobRequest struct {
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
"github.com/vaultdrop/backend/handlers"
|
"github.com/kazier/backend/handlers"
|
||||||
"github.com/vaultdrop/backend/pkg/auth"
|
"github.com/kazier/backend/pkg/auth"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
type stubEngine struct {
|
type stubEngine struct {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterRoutes wires the full /api/v1 surface (public + protected).
|
// RegisterRoutes wires the full /api/v1 surface (public + protected).
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ShareLinkGet resolves a public share link without authentication
|
// ShareLinkGet resolves a public share link without authentication
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestShareLinkPublicResolution(t *testing.T) {
|
func TestShareLinkPublicResolution(t *testing.T) {
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Store is the business layer used by handlers; set once at startup
|
// Store is the business layer used by handlers; set once at startup
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/api"
|
"github.com/kazier/backend/pkg/api"
|
||||||
"github.com/vaultdrop/backend/service"
|
"github.com/kazier/backend/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
type syncOpsRequest struct {
|
type syncOpsRequest struct {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
func syncOpsBody(ops []map[string]any) []byte {
|
func syncOpsBody(ops []map[string]any) []byte {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ var (
|
|||||||
// quand même contre ce hash pour que le délai de réponse soit identique à un
|
// quand même contre ce hash pour que le délai de réponse soit identique à un
|
||||||
// « mauvais mot de passe ».
|
// « mauvais mot de passe ».
|
||||||
var dummyHash = func() string {
|
var dummyHash = func() string {
|
||||||
h, err := Hash("vaultdrop-constantime-dummy")
|
h, err := Hash("kazier-constantime-dummy")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("passwd: impossible de pré-hacher le dummy: %v", err))
|
panic(fmt.Sprintf("passwd: impossible de pré-hacher le dummy: %v", err))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package repository
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTestDevices(t *testing.T) *Devices {
|
func newTestDevices(t *testing.T) *Devices {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTestRepo(t *testing.T) *Repository {
|
func newTestRepo(t *testing.T) *Repository {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTestOperations(t *testing.T) (*Operations, *Devices) {
|
func newTestOperations(t *testing.T) (*Operations, *Devices) {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
)
|
)
|
||||||
|
|
||||||
const repositoryTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_repository_test?sslmode=disable"
|
const repositoryTestURL = "postgres://kazier:kazier@localhost:5432/kazier_repository_test?sslmode=disable"
|
||||||
|
|
||||||
func newTestResources(t *testing.T) *Resources {
|
func newTestResources(t *testing.T) *Resources {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTestUsers(t *testing.T) *Users {
|
func newTestUsers(t *testing.T) *Users {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/passwd"
|
"github.com/kazier/backend/pkg/passwd"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ErrAdminRequired : base vide et identifiants admin absents → le serveur
|
// ErrAdminRequired : base vide et identifiants admin absents → le serveur
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/pkg/passwd"
|
"github.com/kazier/backend/pkg/passwd"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEnsureAdminCreatesFirstAdmin(t *testing.T) {
|
func TestEnsureAdminCreatesFirstAdmin(t *testing.T) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import "github.com/vaultdrop/backend/models"
|
import "github.com/kazier/backend/models"
|
||||||
|
|
||||||
func (s *Services) CreateFolder(folderName string, destination *models.Document) (*models.Document, error) {
|
func (s *Services) CreateFolder(folderName string, destination *models.Document) (*models.Document, error) {
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/models"
|
"github.com/kazier/backend/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *Services) MoveDocumentIntoDocument(from *models.Document, to *models.Document) error {
|
func (s *Services) MoveDocumentIntoDocument(from *models.Document, to *models.Document) error {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package service
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/models"
|
"github.com/kazier/backend/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMoveDocument(t *testing.T) {
|
func TestMoveDocument(t *testing.T) {
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/ocr"
|
"github.com/kazier/backend/ocr"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/ocr"
|
"github.com/kazier/backend/ocr"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// stubEngine again (package service) — même contrat que handlers/ocr_test.
|
// stubEngine again (package service) — même contrat que handlers/ocr_test.
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ErrFileTooLarge signals an upload above MaxFileSize.
|
// ErrFileTooLarge signals an upload above MaxFileSize.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
func multipartFileHeader(t *testing.T, filename string, content []byte) *multipart.FileHeader {
|
func multipartFileHeader(t *testing.T, filename string, content []byte) *multipart.FileHeader {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import "github.com/vaultdrop/backend/models"
|
import "github.com/kazier/backend/models"
|
||||||
|
|
||||||
type Services struct {
|
type Services struct {
|
||||||
ConnectedUser *models.User
|
ConnectedUser *models.User
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
var resourceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
var resourceIDPattern = regexp.MustCompile(`^[0-9a-f]{32}$`)
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/dbtest"
|
"github.com/kazier/backend/dbtest"
|
||||||
"github.com/vaultdrop/backend/repository"
|
"github.com/kazier/backend/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
const serviceTestURL = "postgres://vaultdrop:vaultdrop@localhost:5432/vaultdrop_service_test?sslmode=disable"
|
const serviceTestURL = "postgres://kazier:kazier@localhost:5432/kazier_service_test?sslmode=disable"
|
||||||
|
|
||||||
// newServiceStore returns a Resources service over a fresh migrated test DB.
|
// newServiceStore returns a Resources service over a fresh migrated test DB.
|
||||||
func newServiceStore(t *testing.T) *Resources {
|
func newServiceStore(t *testing.T) *Resources {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package service
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/vaultdrop/backend/models"
|
"github.com/kazier/backend/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *Services) UploadDocument(file *string, destination *models.Document) error {
|
func (s *Services) UploadDocument(file *string, destination *models.Document) error {
|
||||||
|
|||||||
+5
-5
@@ -4,14 +4,14 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-vaultdrop_dev}
|
POSTGRES_DB: ${POSTGRES_DB:-kazier_dev}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-vaultdrop}
|
POSTGRES_USER: ${POSTGRES_USER:-kazier}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-vaultdrop}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-kazier}
|
||||||
volumes:
|
volumes:
|
||||||
- postgres-data:/var/lib/postgresql/data
|
- postgres-data:/var/lib/postgresql/data
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-vaultdrop}"]
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-kazier}"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -26,7 +26,7 @@ services:
|
|||||||
- "${PORT:-8080}:8080"
|
- "${PORT:-8080}:8080"
|
||||||
environment:
|
environment:
|
||||||
PORT: 8080
|
PORT: 8080
|
||||||
DATABASE_URL: postgres://${POSTGRES_USER:-vaultdrop}:${POSTGRES_PASSWORD:-vaultdrop}@postgres:5432/${POSTGRES_DB:-vaultdrop_dev}?sslmode=disable
|
DATABASE_URL: postgres://${POSTGRES_USER:-kazier}:${POSTGRES_PASSWORD:-kazier}@postgres:5432/${POSTGRES_DB:-kazier_dev}?sslmode=disable
|
||||||
UPLOAD_DIR: /app/uploads
|
UPLOAD_DIR: /app/uploads
|
||||||
MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB:-50}
|
MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB:-50}
|
||||||
OCR_LANG: ${OCR_LANG:-fra+eng}
|
OCR_LANG: ${OCR_LANG:-fra+eng}
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# VaultDrop — Contrat API V1 (autoritatif)
|
# Kazier — Contrat API V1 (autoritatif)
|
||||||
|
|
||||||
Status : **autoritatif**. Le client mobile Kotlin est la source de vérité : `data/remote/ApiService.kt` + `data/remote/dto/Dtos.kt` (contrat Retrofit/Moshi) sont implémentés ; le serveur Go doit les matcher exactement (méthode + path + enveloppe), il ne re-négocie pas. Document consolidé depuis le client — toute divergence de ce doc doit être portée dans le client d'abord.
|
Status : **autoritatif**. Le client mobile Kotlin est la source de vérité : `data/remote/ApiService.kt` + `data/remote/dto/Dtos.kt` (contrat Retrofit/Moshi) sont implémentés ; le serveur Go doit les matcher exactement (méthode + path + enveloppe), il ne re-négocie pas. Document consolidé depuis le client — toute divergence de ce doc doit être portée dans le client d'abord.
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ run = '''
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
VERSION=$(cat VERSION)
|
VERSION=$(cat VERSION)
|
||||||
mkdir -p backend/bin
|
mkdir -p backend/bin
|
||||||
cd backend && go build -ldflags "-X main.version=$VERSION" -o bin/vaultdrop-server cmd/server/main.go
|
cd backend && go build -ldflags "-X main.version=$VERSION" -o bin/kazier-server cmd/server/main.go
|
||||||
cd ../mobile-kotlin && ./gradlew :app:assembleDebug -q
|
cd ../mobile-kotlin && ./gradlew :app:assembleDebug -q
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ cd backend && staticcheck ./...
|
|||||||
cd ../mobile-kotlin && ./gradlew :app:lint -q
|
cd ../mobile-kotlin && ./gradlew :app:lint -q
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[tasks.build:release]
|
[tasks."build:release"]
|
||||||
description = "Build signed release APK (assembleRelease)"
|
description = "Build signed release APK (assembleRelease)"
|
||||||
dir = "mobile-kotlin"
|
dir = "mobile-kotlin"
|
||||||
run = '''
|
run = '''
|
||||||
@@ -68,7 +68,7 @@ fi
|
|||||||
echo "APK : app/build/outputs/apk/release/app-release.apk"
|
echo "APK : app/build/outputs/apk/release/app-release.apk"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[tasks.docker:build]
|
[tasks."docker:build"]
|
||||||
description = "Build the backend Docker image (tagged with VERSION)"
|
description = "Build the backend Docker image (tagged with VERSION)"
|
||||||
run = '''
|
run = '''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -76,9 +76,9 @@ VERSION=$(cat VERSION)
|
|||||||
docker build \\
|
docker build \\
|
||||||
--build-arg VERSION="$VERSION" \\
|
--build-arg VERSION="$VERSION" \\
|
||||||
--build-arg BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \\
|
--build-arg BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \\
|
||||||
-t vaultdrop-server:"$VERSION" \\
|
-t kazier-server:"$VERSION" \\
|
||||||
./backend
|
./backend
|
||||||
echo "Image : vaultdrop-server:$VERSION"
|
echo "Image : kazier-server:$VERSION"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[tasks.release]
|
[tasks.release]
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Source unique de vérité : VERSION à la racine du dépôt (ex. 0.1.0).
|
// Source unique de vérité : VERSION à la racine du dépôt (ex. 0.1.0).
|
||||||
val vaultVersion: String = rootProject.file("../VERSION").readText().trim()
|
val kazierVersion: String = rootProject.file("../VERSION").readText().trim()
|
||||||
val vaultVersionCode: Int = run {
|
val kazierVersionCode: Int = run {
|
||||||
val parts = vaultVersion.split('.').map { it.toInt() }
|
val parts = kazierVersion.split('.').map { it.toInt() }
|
||||||
check(parts.size == 3) { "VERSION doit être major.minor.patch, reçu: $vaultVersion" }
|
check(parts.size == 3) { "VERSION doit être major.minor.patch, reçu: $kazierVersion" }
|
||||||
parts[0] * 1_000_000 + parts[1] * 1_000 + parts[2]
|
parts[0] * 1_000_000 + parts[1] * 1_000 + parts[2]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,18 +24,18 @@ val signingProps = Properties().apply {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.vaultdrop.mobile"
|
namespace = "com.kazier.mobile"
|
||||||
compileSdk = 35
|
compileSdk = 35
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "com.vaultdrop.mobile"
|
applicationId = "com.kazier.mobile"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
// targetSdk 35 exige des .so alignés en 16K ; les libs précompilées
|
// targetSdk 35 exige des .so alignés en 16K ; les libs précompilées
|
||||||
// OpenCV/CameraX sont en 4K (warning de compatibilité sur devices
|
// OpenCV/CameraX sont en 4K (warning de compatibilité sur devices
|
||||||
// 16K-pages). On reste en 34 tant qu'elles ne sont pas mises à jour.
|
// 16K-pages). On reste en 34 tant qu'elles ne sont pas mises à jour.
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = vaultVersionCode
|
versionCode = kazierVersionCode
|
||||||
versionName = vaultVersion
|
versionName = kazierVersion
|
||||||
|
|
||||||
// OpenCV natif : on conserve uniquement les ABIs ciblés
|
// OpenCV natif : on conserve uniquement les ABIs ciblés
|
||||||
// (arm64 = devices, x86_64 = émulateur) pour garder l'APK raisonnable.
|
// (arm64 = devices, x86_64 = émulateur) pour garder l'APK raisonnable.
|
||||||
|
|||||||
@@ -2,13 +2,15 @@
|
|||||||
# Alternative CI : mêmes valeurs via les variables d'environnement SIGNING_*.
|
# Alternative CI : mêmes valeurs via les variables d'environnement SIGNING_*.
|
||||||
#
|
#
|
||||||
# 1. Générer un keystore (ne jamais le committer, garder en lieu sûr) :
|
# 1. Générer un keystore (ne jamais le committer, garder en lieu sûr) :
|
||||||
# keytool -genkey -v -keystore release.keystore -alias vaultdrop \
|
# keytool -genkey -v -keystore release.keystore -alias kazier \
|
||||||
# -keyalg RSA -keysize 2048 -validity 10000
|
# -keyalg RSA -keysize 2048 -validity 10000
|
||||||
|
# Note : un keystore existant garde SON alias d'origine (ex. vaultdrop) —
|
||||||
|
# reporter alors la même valeur dans keyAlias ci-dessous.
|
||||||
# 2. Renseigner les valeurs ci-dessous.
|
# 2. Renseigner les valeurs ci-dessous.
|
||||||
#
|
#
|
||||||
# storeFile est relatif au répertoire du module app/ (mobile-kotlin/app).
|
# storeFile est relatif au répertoire du module app/ (mobile-kotlin/app).
|
||||||
|
|
||||||
storeFile=release.keystore
|
storeFile=release.keystore
|
||||||
storePassword=CHANGE_ME
|
storePassword=CHANGE_ME
|
||||||
keyAlias=vaultdrop
|
keyAlias=kazier
|
||||||
keyPassword=CHANGE_ME
|
keyPassword=CHANGE_ME
|
||||||
@@ -10,17 +10,17 @@
|
|||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".VaultDropApplication"
|
android:name=".KazierApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
android:theme="@style/Theme.VaultDrop">
|
android:theme="@style/Theme.Kazier">
|
||||||
|
|
||||||
<!-- HiltWorkerFactory : désactive l'initialisation WorkManager par
|
<!-- HiltWorkerFactory : désactive l'initialisation WorkManager par
|
||||||
défaut (androidx.startup) pour que Configuration.Provider
|
défaut (androidx.startup) pour que Configuration.Provider
|
||||||
(VaultDropApplication) soit honoré — sinon le @HiltWorker ne peut
|
(KazierApplication) soit honoré — sinon le @HiltWorker ne peut
|
||||||
pas être instancié (NoSuchMethodException). -->
|
pas être instancié (NoSuchMethodException). -->
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.startup.InitializationProvider"
|
android:name="androidx.startup.InitializationProvider"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:theme="@style/Theme.VaultDrop">
|
android:theme="@style/Theme.Kazier">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
|||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile
|
package com.kazier.mobile
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.hilt.work.HiltWorkerFactory
|
import androidx.hilt.work.HiltWorkerFactory
|
||||||
@@ -8,7 +8,7 @@ import timber.log.Timber
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@HiltAndroidApp
|
@HiltAndroidApp
|
||||||
class VaultDropApplication : Application(), Configuration.Provider {
|
class KazierApplication : Application(), Configuration.Provider {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var workerFactory: HiltWorkerFactory
|
lateinit var workerFactory: HiltWorkerFactory
|
||||||
+6
-6
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile
|
package com.kazier.mobile
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
@@ -7,9 +7,9 @@ import androidx.activity.enableEdgeToEdge
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.vaultdrop.mobile.domain.ThemePreferenceStore
|
import com.kazier.mobile.domain.ThemePreferenceStore
|
||||||
import com.vaultdrop.mobile.ui.navigation.VaultDropApp
|
import com.kazier.mobile.ui.navigation.KazierApp
|
||||||
import com.vaultdrop.mobile.ui.theme.VaultDropTheme
|
import com.kazier.mobile.ui.theme.KazierTheme
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -28,8 +28,8 @@ class MainActivity : ComponentActivity() {
|
|||||||
|
|
||||||
setContent {
|
setContent {
|
||||||
val theme by themePreferenceStore.theme.collectAsStateWithLifecycle()
|
val theme by themePreferenceStore.theme.collectAsStateWithLifecycle()
|
||||||
VaultDropTheme(theme = theme) {
|
KazierTheme(theme = theme) {
|
||||||
VaultDropApp()
|
KazierApp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
-5
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.auth
|
package com.kazier.mobile.auth
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -6,7 +6,7 @@ import androidx.security.crypto.EncryptedSharedPreferences
|
|||||||
import androidx.security.crypto.MasterKeys
|
import androidx.security.crypto.MasterKeys
|
||||||
import com.squareup.moshi.JsonAdapter
|
import com.squareup.moshi.JsonAdapter
|
||||||
import com.squareup.moshi.Moshi
|
import com.squareup.moshi.Moshi
|
||||||
import com.vaultdrop.mobile.data.remote.dto.UserDto
|
import com.kazier.mobile.data.remote.dto.UserDto
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -56,8 +56,8 @@ class SecureTokenStore @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val FILE_NAME = "vaultdrop_secure"
|
private const val FILE_NAME = "kazier_secure"
|
||||||
private const val KEY_TOKEN = "vaultdrop.auth_token"
|
private const val KEY_TOKEN = "kazier.auth_token"
|
||||||
private const val KEY_ACCOUNT = "vaultdrop.account"
|
private const val KEY_ACCOUNT = "kazier.account"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+8
-8
@@ -1,10 +1,10 @@
|
|||||||
package com.vaultdrop.mobile.auth
|
package com.kazier.mobile.auth
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginResponseDto
|
import com.kazier.mobile.data.remote.dto.LoginResponseDto
|
||||||
import com.vaultdrop.mobile.domain.ActiveUserStore
|
import com.kazier.mobile.domain.ActiveUserStore
|
||||||
import com.vaultdrop.mobile.domain.DeviceIdentity
|
import com.kazier.mobile.domain.DeviceIdentity
|
||||||
import com.vaultdrop.mobile.domain.LocalModeStore
|
import com.kazier.mobile.domain.LocalModeStore
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ class SessionManager @Inject constructor(
|
|||||||
return AuthSession(token = token, user = user)
|
return AuthSession(token = token, user = user)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun save(token: String, user: com.vaultdrop.mobile.data.remote.dto.UserDto) {
|
suspend fun save(token: String, user: com.kazier.mobile.data.remote.dto.UserDto) {
|
||||||
secureTokenStore.save(token, user)
|
secureTokenStore.save(token, user)
|
||||||
activeUserStore.set(user.id)
|
activeUserStore.set(user.id)
|
||||||
localModeStore.clear()
|
localModeStore.clear()
|
||||||
@@ -52,5 +52,5 @@ class SessionManager @Inject constructor(
|
|||||||
|
|
||||||
data class AuthSession(
|
data class AuthSession(
|
||||||
val token: String,
|
val token: String,
|
||||||
val user: com.vaultdrop.mobile.data.remote.dto.UserDto,
|
val user: com.kazier.mobile.data.remote.dto.UserDto,
|
||||||
)
|
)
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.auth
|
package com.kazier.mobile.auth
|
||||||
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+12
-12
@@ -1,18 +1,18 @@
|
|||||||
package com.vaultdrop.mobile.data.local
|
package com.kazier.mobile.data.local
|
||||||
|
|
||||||
import androidx.room.Database
|
import androidx.room.Database
|
||||||
import androidx.room.RoomDatabase
|
import androidx.room.RoomDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.FileDao
|
import com.kazier.mobile.data.local.dao.FileDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.FolderDao
|
import com.kazier.mobile.data.local.dao.FolderDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.PendingOperationDao
|
import com.kazier.mobile.data.local.dao.PendingOperationDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.ScanDao
|
import com.kazier.mobile.data.local.dao.ScanDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.FolderEntity
|
import com.kazier.mobile.data.local.entity.FolderEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.PendingOperationEntity
|
import com.kazier.mobile.data.local.entity.PendingOperationEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanPageEntity
|
import com.kazier.mobile.data.local.entity.ScanPageEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanSessionEntity
|
import com.kazier.mobile.data.local.entity.ScanSessionEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DB SQLite locale, `dot.db` (même nom que la version Expo).
|
* DB SQLite locale, `dot.db` (même nom que la version Expo).
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.vaultdrop.mobile.data.local
|
package com.kazier.mobile.data.local
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
|
|
||||||
/** Date de référence d'un fichier : modification SAF quand dispo, sinon ajout local. */
|
/** Date de référence d'un fichier : modification SAF quand dispo, sinon ajout local. */
|
||||||
val FileEntity.referenceDate: Long
|
val FileEntity.referenceDate: Long
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package com.vaultdrop.mobile.data.local.dao
|
package com.kazier.mobile.data.local.dao
|
||||||
|
|
||||||
import androidx.room.Dao
|
import androidx.room.Dao
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import androidx.room.Upsert
|
import androidx.room.Upsert
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package com.vaultdrop.mobile.data.local.dao
|
package com.kazier.mobile.data.local.dao
|
||||||
|
|
||||||
import androidx.room.Dao
|
import androidx.room.Dao
|
||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.OnConflictStrategy
|
import androidx.room.OnConflictStrategy
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import androidx.room.Upsert
|
import androidx.room.Upsert
|
||||||
import com.vaultdrop.mobile.data.local.entity.FolderEntity
|
import com.kazier.mobile.data.local.entity.FolderEntity
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package com.vaultdrop.mobile.data.local.dao
|
package com.kazier.mobile.data.local.dao
|
||||||
|
|
||||||
import androidx.room.Dao
|
import androidx.room.Dao
|
||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import com.vaultdrop.mobile.data.local.entity.PendingOperationEntity
|
import com.kazier.mobile.data.local.entity.PendingOperationEntity
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
package com.vaultdrop.mobile.data.local.dao
|
package com.kazier.mobile.data.local.dao
|
||||||
|
|
||||||
import androidx.room.Dao
|
import androidx.room.Dao
|
||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import androidx.room.Update
|
import androidx.room.Update
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanPageEntity
|
import com.kazier.mobile.data.local.entity.ScanPageEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanSessionEntity
|
import com.kazier.mobile.data.local.entity.ScanSessionEntity
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
/** Persistance des sessions de scan (appareil photo) — local uniquement. */
|
/** Persistance des sessions de scan (appareil photo) — local uniquement. */
|
||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package com.vaultdrop.mobile.data.local.dao
|
package com.kazier.mobile.data.local.dao
|
||||||
|
|
||||||
import androidx.room.Dao
|
import androidx.room.Dao
|
||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.OnConflictStrategy
|
import androidx.room.OnConflictStrategy
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import androidx.room.Upsert
|
import androidx.room.Upsert
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
interface UserPreferenceDao {
|
interface UserPreferenceDao {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.entity
|
package com.kazier.mobile.data.local.entity
|
||||||
|
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.local.migration
|
package com.kazier.mobile.data.local.migration
|
||||||
|
|
||||||
import androidx.room.migration.Migration
|
import androidx.room.migration.Migration
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.preferences
|
package com.kazier.mobile.data.preferences
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -7,7 +7,7 @@ import javax.inject.Inject
|
|||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Racine VaultDrop : le dossier SAF unique et obligatoire choisi au premier
|
* Racine Kazier : le dossier SAF unique et obligatoire choisi au premier
|
||||||
* lancement. Tous les exports (assemblage PDF) y sont écrits directement,
|
* lancement. Tous les exports (assemblage PDF) y sont écrits directement,
|
||||||
* sans sélecteur — la permission persistante sur l'arbre est acquise à ce
|
* sans sélecteur — la permission persistante sur l'arbre est acquise à ce
|
||||||
* moment-là.
|
* moment-là.
|
||||||
@@ -31,7 +31,7 @@ class DefaultRootStore @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val FILE_NAME = "vaultdrop_prefs"
|
private const val FILE_NAME = "kazier_prefs"
|
||||||
private const val KEY_ROOT_RESOURCE_ID = "vaultdrop.default_root_resource_id"
|
private const val KEY_ROOT_RESOURCE_ID = "kazier.default_root_resource_id"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+16
-16
@@ -1,22 +1,22 @@
|
|||||||
package com.vaultdrop.mobile.data.remote
|
package com.kazier.mobile.data.remote
|
||||||
|
|
||||||
import com.squareup.moshi.JsonAdapter
|
import com.squareup.moshi.JsonAdapter
|
||||||
import com.squareup.moshi.Moshi
|
import com.squareup.moshi.Moshi
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ApiEnvelope
|
import com.kazier.mobile.data.remote.dto.ApiEnvelope
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ApiErrorEnvelope
|
import com.kazier.mobile.data.remote.dto.ApiErrorEnvelope
|
||||||
import com.vaultdrop.mobile.data.remote.dto.DeviceRegistrationDto
|
import com.kazier.mobile.data.remote.dto.DeviceRegistrationDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FileDto
|
import com.kazier.mobile.data.remote.dto.FileDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FileOcrDto
|
import com.kazier.mobile.data.remote.dto.FileOcrDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FolderDto
|
import com.kazier.mobile.data.remote.dto.FolderDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginRequestDto
|
import com.kazier.mobile.data.remote.dto.LoginRequestDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginResponseDto
|
import com.kazier.mobile.data.remote.dto.LoginResponseDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrJobDto
|
import com.kazier.mobile.data.remote.dto.OcrJobDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrSubmitDto
|
import com.kazier.mobile.data.remote.dto.OcrSubmitDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ResolvedUserDto
|
import com.kazier.mobile.data.remote.dto.ResolvedUserDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ResourcePermissionDto
|
import com.kazier.mobile.data.remote.dto.ResourcePermissionDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.SyncOpDto
|
import com.kazier.mobile.data.remote.dto.SyncOpDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.SyncOpsRequest
|
import com.kazier.mobile.data.remote.dto.SyncOpsRequest
|
||||||
import com.vaultdrop.mobile.data.remote.dto.SyncOpsResult
|
import com.kazier.mobile.data.remote.dto.SyncOpsResult
|
||||||
import okhttp3.MultipartBody
|
import okhttp3.MultipartBody
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.RequestBody
|
import okhttp3.RequestBody
|
||||||
+14
-14
@@ -1,18 +1,18 @@
|
|||||||
package com.vaultdrop.mobile.data.remote
|
package com.kazier.mobile.data.remote
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ApiEnvelope
|
import com.kazier.mobile.data.remote.dto.ApiEnvelope
|
||||||
import com.vaultdrop.mobile.data.remote.dto.DeviceRegistrationDto
|
import com.kazier.mobile.data.remote.dto.DeviceRegistrationDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FileDto
|
import com.kazier.mobile.data.remote.dto.FileDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FileOcrDto
|
import com.kazier.mobile.data.remote.dto.FileOcrDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FolderDto
|
import com.kazier.mobile.data.remote.dto.FolderDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginRequestDto
|
import com.kazier.mobile.data.remote.dto.LoginRequestDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginResponseDto
|
import com.kazier.mobile.data.remote.dto.LoginResponseDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrJobDto
|
import com.kazier.mobile.data.remote.dto.OcrJobDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrSubmitDto
|
import com.kazier.mobile.data.remote.dto.OcrSubmitDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ResolvedUserDto
|
import com.kazier.mobile.data.remote.dto.ResolvedUserDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ResourcePermissionDto
|
import com.kazier.mobile.data.remote.dto.ResourcePermissionDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.SyncOpsRequest
|
import com.kazier.mobile.data.remote.dto.SyncOpsRequest
|
||||||
import com.vaultdrop.mobile.data.remote.dto.SyncOpsResult
|
import com.kazier.mobile.data.remote.dto.SyncOpsResult
|
||||||
import okhttp3.MultipartBody
|
import okhttp3.MultipartBody
|
||||||
import okhttp3.RequestBody
|
import okhttp3.RequestBody
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.vaultdrop.mobile.data.remote
|
package com.kazier.mobile.data.remote
|
||||||
|
|
||||||
import okhttp3.Interceptor
|
import okhttp3.Interceptor
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
import com.vaultdrop.mobile.auth.TokenProvider
|
import com.kazier.mobile.auth.TokenProvider
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injecte `Authorization: Bearer <token>` sur chaque requête si un token est
|
* Injecte `Authorization: Bearer <token>` sur chaque requête si un token est
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.vaultdrop.mobile.data.remote
|
package com.kazier.mobile.data.remote
|
||||||
|
|
||||||
import com.vaultdrop.mobile.domain.ServerConfigStore
|
import com.kazier.mobile.domain.ServerConfigStore
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.data.remote.dto
|
package com.kazier.mobile.data.remote.dto
|
||||||
|
|
||||||
import com.squareup.moshi.Json
|
import com.squareup.moshi.Json
|
||||||
|
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.dto.LoginResponseDto
|
import com.kazier.mobile.data.remote.dto.LoginResponseDto
|
||||||
import com.vaultdrop.mobile.domain.DeviceIdentity
|
import com.kazier.mobile.domain.DeviceIdentity
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+10
-10
@@ -1,15 +1,15 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import androidx.room.withTransaction
|
import androidx.room.withTransaction
|
||||||
import com.vaultdrop.mobile.data.local.AppDatabase
|
import com.kazier.mobile.data.local.AppDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.FileDao
|
import com.kazier.mobile.data.local.dao.FileDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileStatus
|
import com.kazier.mobile.data.local.entity.FileStatus
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FileDto
|
import com.kazier.mobile.data.remote.dto.FileDto
|
||||||
import com.vaultdrop.mobile.domain.GenerateId
|
import com.kazier.mobile.domain.GenerateId
|
||||||
import com.vaultdrop.mobile.domain.SyncPlacement
|
import com.kazier.mobile.domain.SyncPlacement
|
||||||
import com.vaultdrop.mobile.domain.computeCategory
|
import com.kazier.mobile.domain.computeCategory
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+10
-10
@@ -1,15 +1,15 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import androidx.room.withTransaction
|
import androidx.room.withTransaction
|
||||||
import com.vaultdrop.mobile.data.local.AppDatabase
|
import com.kazier.mobile.data.local.AppDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.FolderDao
|
import com.kazier.mobile.data.local.dao.FolderDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.FolderEntity
|
import com.kazier.mobile.data.local.entity.FolderEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.FolderStatus
|
import com.kazier.mobile.data.local.entity.FolderStatus
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.dto.FolderDto
|
import com.kazier.mobile.data.remote.dto.FolderDto
|
||||||
import com.vaultdrop.mobile.domain.DeviceIdentity
|
import com.kazier.mobile.domain.DeviceIdentity
|
||||||
import com.vaultdrop.mobile.domain.GenerateId
|
import com.kazier.mobile.domain.GenerateId
|
||||||
import com.vaultdrop.mobile.domain.SyncPlacement
|
import com.kazier.mobile.domain.SyncPlacement
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+7
-7
@@ -1,15 +1,15 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import android.content.ContentResolver
|
import android.content.ContentResolver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import com.vaultdrop.mobile.data.local.dao.FileDao
|
import com.kazier.mobile.data.local.dao.FileDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.ApiException
|
import com.kazier.mobile.data.remote.ApiException
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrJobDto
|
import com.kazier.mobile.data.remote.dto.OcrJobDto
|
||||||
import com.vaultdrop.mobile.data.remote.dto.OcrJobStatus
|
import com.kazier.mobile.data.remote.dto.OcrJobStatus
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import okhttp3.MediaType
|
import okhttp3.MediaType
|
||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import com.squareup.moshi.JsonAdapter
|
import com.squareup.moshi.JsonAdapter
|
||||||
import com.squareup.moshi.Moshi
|
import com.squareup.moshi.Moshi
|
||||||
import com.squareup.moshi.Types
|
import com.squareup.moshi.Types
|
||||||
import com.vaultdrop.mobile.data.local.dao.PendingOperationDao
|
import com.kazier.mobile.data.local.dao.PendingOperationDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.PendingOpStatus
|
import com.kazier.mobile.data.local.entity.PendingOpStatus
|
||||||
import com.vaultdrop.mobile.data.local.entity.PendingOperationEntity
|
import com.kazier.mobile.data.local.entity.PendingOperationEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.PendingOperationType
|
import com.kazier.mobile.data.local.entity.PendingOperationType
|
||||||
import com.vaultdrop.mobile.domain.GenerateId
|
import com.kazier.mobile.domain.GenerateId
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
+8
-8
@@ -1,13 +1,13 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import androidx.room.withTransaction
|
import androidx.room.withTransaction
|
||||||
import com.vaultdrop.mobile.data.local.AppDatabase
|
import com.kazier.mobile.data.local.AppDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.ScanDao
|
import com.kazier.mobile.data.local.dao.ScanDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanPageEntity
|
import com.kazier.mobile.data.local.entity.ScanPageEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanPageStatus
|
import com.kazier.mobile.data.local.entity.ScanPageStatus
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanSessionEntity
|
import com.kazier.mobile.data.local.entity.ScanSessionEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.ScanSessionStatus
|
import com.kazier.mobile.data.local.entity.ScanSessionStatus
|
||||||
import com.vaultdrop.mobile.domain.GenerateId
|
import com.kazier.mobile.domain.GenerateId
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+10
-10
@@ -1,15 +1,15 @@
|
|||||||
package com.vaultdrop.mobile.data.repository
|
package com.kazier.mobile.data.repository
|
||||||
|
|
||||||
import androidx.room.withTransaction
|
import androidx.room.withTransaction
|
||||||
import com.vaultdrop.mobile.data.local.AppDatabase
|
import com.kazier.mobile.data.local.AppDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.FileDao
|
import com.kazier.mobile.data.local.dao.FileDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.FolderDao
|
import com.kazier.mobile.data.local.dao.FolderDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.FileEntity
|
import com.kazier.mobile.data.local.entity.FileEntity
|
||||||
import com.vaultdrop.mobile.data.local.entity.FolderEntity
|
import com.kazier.mobile.data.local.entity.FolderEntity
|
||||||
import com.vaultdrop.mobile.data.remote.ApiClient
|
import com.kazier.mobile.data.remote.ApiClient
|
||||||
import com.vaultdrop.mobile.data.remote.dto.ResourcePermissionDto
|
import com.kazier.mobile.data.remote.dto.ResourcePermissionDto
|
||||||
import com.vaultdrop.mobile.domain.DeviceIdentity
|
import com.kazier.mobile.domain.DeviceIdentity
|
||||||
import com.vaultdrop.mobile.domain.SyncPlacement
|
import com.kazier.mobile.domain.SyncPlacement
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.di
|
package com.kazier.mobile.di
|
||||||
|
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
+8
-8
@@ -1,14 +1,14 @@
|
|||||||
package com.vaultdrop.mobile.di
|
package com.kazier.mobile.di
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
import com.vaultdrop.mobile.data.local.AppDatabase
|
import com.kazier.mobile.data.local.AppDatabase
|
||||||
import com.vaultdrop.mobile.data.local.dao.FileDao
|
import com.kazier.mobile.data.local.dao.FileDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.FolderDao
|
import com.kazier.mobile.data.local.dao.FolderDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.PendingOperationDao
|
import com.kazier.mobile.data.local.dao.PendingOperationDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.ScanDao
|
import com.kazier.mobile.data.local.dao.ScanDao
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.migration.Migrations
|
import com.kazier.mobile.data.local.migration.Migrations
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
+6
-6
@@ -1,11 +1,11 @@
|
|||||||
package com.vaultdrop.mobile.di
|
package com.kazier.mobile.di
|
||||||
|
|
||||||
import com.squareup.moshi.Moshi
|
import com.squareup.moshi.Moshi
|
||||||
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
|
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
|
||||||
import com.vaultdrop.mobile.BuildConfig
|
import com.kazier.mobile.BuildConfig
|
||||||
import com.vaultdrop.mobile.data.remote.ApiService
|
import com.kazier.mobile.data.remote.ApiService
|
||||||
import com.vaultdrop.mobile.data.remote.AuthInterceptor
|
import com.kazier.mobile.data.remote.AuthInterceptor
|
||||||
import com.vaultdrop.mobile.data.remote.ServerUrlInterceptor
|
import com.kazier.mobile.data.remote.ServerUrlInterceptor
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
@@ -80,5 +80,5 @@ object NetworkModule {
|
|||||||
fun provideApiService(retrofit: Retrofit): ApiService =
|
fun provideApiService(retrofit: Retrofit): ApiService =
|
||||||
retrofit.create(ApiService::class.java)
|
retrofit.create(ApiService::class.java)
|
||||||
|
|
||||||
private const val PLACEHOLDER_BASE_URL = "http://vaultdrop.invalid/"
|
private const val PLACEHOLDER_BASE_URL = "http://kazier.invalid/"
|
||||||
}
|
}
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
enum class FileCategory {
|
enum class FileCategory {
|
||||||
PDF,
|
PDF,
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import java.security.SecureRandom
|
import java.security.SecureRandom
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
+4
-4
@@ -1,13 +1,13 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drapeau « mode local » (on utilise l'app sans compte) persisté en
|
* Drapeau « mode local » (on utilise l'app sans compte) persisté en
|
||||||
* `user_preferences`. Permet de restaurer [com.vaultdrop.mobile.ui.auth.AuthState.Local]
|
* `user_preferences`. Permet de restaurer [com.kazier.mobile.ui.auth.AuthState.Local]
|
||||||
* au redémarrage au lieu de retomber sur la page de connexion.
|
* au redémarrage au lieu de retomber sur la page de connexion.
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
/** Clés de `user_preferences` — miroir de `services/db/schema.ts`. */
|
/** Clés de `user_preferences` — miroir de `services/db/schema.ts`. */
|
||||||
object PrefKeys {
|
object PrefKeys {
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Named
|
import javax.inject.Named
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Règle de placement d'une ressource (`sync_status`), partagée entre files et
|
* Règle de placement d'une ressource (`sync_status`), partagée entre files et
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Préférence d'affichage de la page Réglages, persistée dans `user_preferences`.
|
* Préférence d'affichage de la page Réglages, persistée dans `user_preferences`.
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.vaultdrop.mobile.domain
|
package com.kazier.mobile.domain
|
||||||
|
|
||||||
import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao
|
import com.kazier.mobile.data.local.dao.UserPreferenceDao
|
||||||
import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity
|
import com.kazier.mobile.data.local.entity.UserPreferenceEntity
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user