- Add Calendar helpers (ListCalendars/ListEvents/AddEvent/DeleteEvent) - Add CRM helpers: contacts, opportunities, cases, CRM tasks, history notes - Add project-task extras (ListTasks/ListAllTasks/GetTaskByID/AddTask/ AddSubtask/UpdateTaskStatus/DeleteTask, GetProjectByID) - Add UploadOpportunityFile (multipart) and SelfUserID caching - Introduce Defaults struct, SetDefaults, GetEnvironmentDefaults; GetEnvironmentCredentials now accepts ONLYOFFICE_HOST/NAME/PASSWORD aliases - Add public Authenticate() helper that eagerly primes the token - Bundle Cobra CLI at cmd/oo-cli with full command surface (calendar, tasks, subtasks, CRM, applications-sync); CLI-only deps (cobra, godotenv) kept out of the library surface - Add httptest-based unit tests for form/multipart helpers - Docs: CHANGELOG, AGENTS, .env.example, README updates for v0.3 features Consolidates the standalone eSlider/oo-cli tool into this canonical Go module (see eSlider/inventar ASR-0008). Made-with: Cursor
1.5 KiB
1.5 KiB
AGENTS — go-onlyoffice
Canonical Go client for OnlyOffice Workspace (Projects + Calendar + CRM) and the oo-cli command.
Topology
- Library (root package
onlyoffice) —onlyoffice.go,httpx.go,calendar.go,crm.go,tasks_extra.go,files.go. Pure stdlib +google/go-querystring; no UI, no dotenv. - CLI (
cmd/oo-cli+internal/cli) — Cobra wrapper that loads.envviagodotenvat startup. CLI-only deps (spf13/cobra,joho/godotenv) must stay out of the library surface. - Applications sync (
internal/applications) — README/CRM bridge, consumes the library.
Rules
- Library must never call
godotenv.Load()— the CLI does that. - New endpoints go into the library first; CLI commands are thin wrappers.
- No secrets in the repo; use
.env(gitignored). Commit.env.exampleonly. - Prefer httptest-based unit tests (see
httpx_test.go); integration tests (client_test.go) auto-skip withoutONLYOFFICE_URL. - Follow SemVer on tags; this repo is tagged at GitHub under
git@github.com:eSlider/go-onlyoffice.git.
Related
eSlider/inventar— ASR/ADR (see ASR-0008 Go library module conventions).eSlider/inventar-sync— OnlyOffice → Gitea issue sync, consumes this library.produktor.io/vidarr— legacy consumer being migrated frompkg/onlyofficeto this module.