diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5a255f8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,22 @@ +name: CI + +on: + push: + branches: [main, v2] + pull_request: + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.24" + + - run: go build ./... + + - run: go test ./... + + - uses: golangci/golangci-lint-action@v8 diff --git a/.gitignore b/.gitignore index 3e8161a..2583b5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,13 @@ -*.db -/data -/uploads +/bin/ +/dist/ +/potok +/potokd +coverage.out +*.test .env +.env.local +/data/ +*.db +.vscode/ +.idea/ +.DS_Store diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md diff --git a/cmd/potok/main.go b/cmd/potok/main.go new file mode 100644 index 0000000..9183718 --- /dev/null +++ b/cmd/potok/main.go @@ -0,0 +1,8 @@ +// Command potok is the Potok command line client. +package main + +import "fmt" + +func main() { + fmt.Println("potok: not implemented yet") +} diff --git a/cmd/potokd/main.go b/cmd/potokd/main.go new file mode 100644 index 0000000..db67fce --- /dev/null +++ b/cmd/potokd/main.go @@ -0,0 +1,8 @@ +// Command potokd is the Potok server daemon. +package main + +import "fmt" + +func main() { + fmt.Println("potokd: not implemented yet") +} diff --git a/internal/client/cli/doc.go b/internal/client/cli/doc.go new file mode 100644 index 0000000..03a24cc --- /dev/null +++ b/internal/client/cli/doc.go @@ -0,0 +1,2 @@ +// Package cli implements the potok command tree. +package cli diff --git a/internal/client/config/doc.go b/internal/client/config/doc.go new file mode 100644 index 0000000..4df3224 --- /dev/null +++ b/internal/client/config/doc.go @@ -0,0 +1,2 @@ +// Package config reads and writes the client configuration file. +package config diff --git a/internal/client/crypto/doc.go b/internal/client/crypto/doc.go new file mode 100644 index 0000000..5c234f6 --- /dev/null +++ b/internal/client/crypto/doc.go @@ -0,0 +1,2 @@ +// Package crypto implements key derivation and vault encryption. +package crypto diff --git a/internal/client/secrets/doc.go b/internal/client/secrets/doc.go new file mode 100644 index 0000000..faa4b14 --- /dev/null +++ b/internal/client/secrets/doc.go @@ -0,0 +1,2 @@ +// Package secrets stores passphrases and API keys in the OS keyring. +package secrets diff --git a/internal/client/syncer/doc.go b/internal/client/syncer/doc.go new file mode 100644 index 0000000..9f54e6c --- /dev/null +++ b/internal/client/syncer/doc.go @@ -0,0 +1,2 @@ +// Package syncer diffs local and remote state and applies the result. +package syncer diff --git a/internal/client/transport/doc.go b/internal/client/transport/doc.go new file mode 100644 index 0000000..1593b5d --- /dev/null +++ b/internal/client/transport/doc.go @@ -0,0 +1,2 @@ +// Package transport is the HTTP client for the Potok API. +package transport diff --git a/internal/client/vault/doc.go b/internal/client/vault/doc.go new file mode 100644 index 0000000..3c05c6d --- /dev/null +++ b/internal/client/vault/doc.go @@ -0,0 +1,2 @@ +// Package vault scans vault directories and maintains the local index. +package vault diff --git a/internal/protocol/doc.go b/internal/protocol/doc.go new file mode 100644 index 0000000..696c6f5 --- /dev/null +++ b/internal/protocol/doc.go @@ -0,0 +1,2 @@ +// Package protocol defines the wire types shared by the client and server. +package protocol diff --git a/internal/server/auth/doc.go b/internal/server/auth/doc.go new file mode 100644 index 0000000..6f06da5 --- /dev/null +++ b/internal/server/auth/doc.go @@ -0,0 +1,2 @@ +// Package auth issues and verifies API keys. +package auth diff --git a/internal/server/blobstore/doc.go b/internal/server/blobstore/doc.go new file mode 100644 index 0000000..fbe40dd --- /dev/null +++ b/internal/server/blobstore/doc.go @@ -0,0 +1,2 @@ +// Package blobstore stores opaque encrypted blobs. +package blobstore diff --git a/internal/server/dashboard/doc.go b/internal/server/dashboard/doc.go new file mode 100644 index 0000000..1ee9dd6 --- /dev/null +++ b/internal/server/dashboard/doc.go @@ -0,0 +1,2 @@ +// Package dashboard serves the admin web interface. +package dashboard diff --git a/internal/server/doc.go b/internal/server/doc.go new file mode 100644 index 0000000..54e974d --- /dev/null +++ b/internal/server/doc.go @@ -0,0 +1,2 @@ +// Package server wires the API server and its dependencies together. +package server diff --git a/internal/server/http/doc.go b/internal/server/http/doc.go new file mode 100644 index 0000000..2da735d --- /dev/null +++ b/internal/server/http/doc.go @@ -0,0 +1,2 @@ +// Package httpapi serves the Potok HTTP API. +package httpapi diff --git a/internal/server/store/doc.go b/internal/server/store/doc.go new file mode 100644 index 0000000..1ba742b --- /dev/null +++ b/internal/server/store/doc.go @@ -0,0 +1,2 @@ +// Package store persists vault metadata. +package store diff --git a/internal/version/doc.go b/internal/version/doc.go new file mode 100644 index 0000000..6e70374 --- /dev/null +++ b/internal/version/doc.go @@ -0,0 +1,2 @@ +// Package version exposes build metadata stamped in at link time. +package version