Repository navigation
Security Model
English · 繁體中文
- Passwords are never accepted on the command line. A password can only be typed at a TTY without echo, or replaced by token login, so it never lands in shell history or the process list.
- Tokens live in the operating system keyring and are never written to the config file.
- The keyring key includes both the profile and the API URL, so switching sites never reuses an old token.
-
--verbosediagnostics contain only method, path, status code, and elapsed time — no Authorization header, password, or token.
The following never appear in success output, list results, or dry runs:
- Webhook signing secrets
- Application token auth codes, and callback URLs that carry one
- Project ownership transfer tokens
- Only idempotent GETs are retried automatically, with a bounded attempt count and randomized backoff.
- POST, PATCH, and DELETE are never resent blindly.
- The few endpoints that use GET to enqueue background work — project export, for example — are marked non-idempotent and are not retried either.
- Only 429, 502, 503, and 504 trigger a retry, honouring the server's
Retry-Afterup to 30 seconds.
When a write fails in transit, or its response cannot be decoded, the CLI reports ambiguous_commit
(exit code 11) with a message saying the request may have been committed and should be verified
before retrying. That is safer than resending, which could duplicate a record.
After deleting a work item or metadata record, the CLI reads it back to confirm it is gone. Comment
edits, deletions, and restorations are likewise confirmed by comparing timestamps. When confirmation
is impossible, the result is ambiguous_commit rather than an assumption of success.
Every mutation carries Taiga's version. On conflict the CLI reports occ_conflict (exit code 6)
and stops — it never auto-merges and never overwrites someone else's change. Use --base-version
when you need explicit control over the base.
Without a terminal, delete commands require an explicit --yes or they report
confirmation_required (exit code 10). Interactive runs ask. The CLI never skips confirmation
because something "looks automated".
- Downloads are written to a
0600temporary file, verified, then moved atomically into place, and never overwrite an existing file by default. - Config files and caches use the same temp-then-rename approach, with
0600files inside0700directories. - Attachment downloads never send the API bearer token to the media URL.
TLS verification is always on. There is no flag to disable it.
Getting started
Command reference
- Projects
- Members and Roles
- Work Items
- Sprints
- Wiki Pages
- Attachments
- Metadata and Custom Fields
- Search, Timeline and Stats
- Batch Operations
- Automation Recipes
- Alternatives
- Webhooks
- Account and Integrations
Operations