- clients/README.md: canonical API surface and error type reference - clients/testdata/: shared JSON response fixtures - clients/go/: mciasgoclient package; net/http + TLS 1.2+; sync.RWMutex token state; DisallowUnknownFields on all decoders; 25 tests pass - clients/rust/: async mcias-client crate; reqwest+rustls (no OpenSSL); thiserror MciasError enum; Arc<RwLock> token state; 22+1 tests pass; cargo clippy -D warnings clean - clients/lisp/: ASDF mcias-client; dexador HTTP, yason JSON; mcias-error condition hierarchy; Hunchentoot mock-dispatcher; 37 fiveam checks pass on SBCL 2.6.1; yason boolean normalisation in validate-token - clients/python/: mcias_client package (Python 3.11+); httpx sync; py.typed; dataclasses; 32 pytest tests; mypy --strict + ruff clean - test/mock/mockserver.go: in-memory mock server for Go client tests - ARCHITECTURE.md §19: updated per-language notes to match implementation - PROGRESS.md: Phase 9 marked complete - .gitignore: exclude clients/rust/target/, python .venv, .pytest_cache, .fasl files Security: token never logged or exposed in error messages in any library; TLS enforced in all four languages; token stored under lock/mutex/RwLock
50 lines
899 B
Common Lisp
50 lines
899 B
Common Lisp
;;;; package.lisp -- package definition for mcias-client
|
|
|
|
(defpackage #:mcias-client
|
|
(:use #:cl)
|
|
(:export
|
|
;; Client construction
|
|
#:make-client
|
|
#:client-base-url
|
|
#:client-token
|
|
|
|
;; Conditions
|
|
#:mcias-error
|
|
#:mcias-auth-error
|
|
#:mcias-forbidden-error
|
|
#:mcias-not-found-error
|
|
#:mcias-input-error
|
|
#:mcias-conflict-error
|
|
#:mcias-server-error
|
|
#:mcias-error-status
|
|
#:mcias-error-message
|
|
|
|
;; Authentication
|
|
#:login
|
|
#:logout
|
|
#:renew-token
|
|
#:validate-token
|
|
|
|
;; Server information
|
|
#:health
|
|
#:get-public-key
|
|
|
|
;; Account management (admin)
|
|
#:create-account
|
|
#:list-accounts
|
|
#:get-account
|
|
#:update-account
|
|
#:delete-account
|
|
|
|
;; Role management (admin)
|
|
#:get-roles
|
|
#:set-roles
|
|
|
|
;; Token management (admin)
|
|
#:issue-service-token
|
|
#:revoke-token
|
|
|
|
;; PG credentials (admin)
|
|
#:get-pg-creds
|
|
#:set-pg-creds))
|