CLI client for interacting with LumenRadio serial generation backend service.
Project description
lr-serial
CLI + Python client for interacting with the LumenRadio Serial Number Generation Service.
Install
pip install lr-serial
CLI Usage
Login Command
Authenticate and store credentials for the Serial Number Service:
serial login --client-id <CLIENT_ID> --client-secret <CLIENT_SECRET> --tenant-id <TENANT_ID>
Options:
--client-id(Azure AD application client ID) [env: SERIAL_CLIENT_ID]--client-secret(Azure AD application client secret) [env: SERIAL_CLIENT_SECRET]--tenant-id(Azure AD tenant ID) [env: SERIAL_TENANT_ID]--token-url(optional, override token endpoint URL) [env: SERIAL_TOKEN_URL]--scope(optional, override OAuth2 scope) [env: SERIAL_SCOPE]--config-path(optional, override login.json location)
Stores a bearer token in your config directory for subsequent CLI commands.
Status Command
Check backend reachability and token validity:
serial status
Reports:
- Backend reachable ✓ / unreachable ✗
- Token valid ✓ / invalid ✗
Global Options
Most commands support:
--output [rich|json]— output format (rich table default, json for scripting)--config-path PATH— override the login.json location
Article Commands
List Articles
serial list-articles
serial list-articles --output json
Get Article
serial article get ARTICLE_NO
serial article get 710-4130 --output json
Returns full article details: article number, description, prefix, schema (version, fields, format, regexp), disabled flag.
Create Article
serial article create \
--article PROD-01 \
--description "Production line 1" \
--prefix PROD \
--schema-file schema.json
The --schema-file must be a JSON file with the ArticleSchema object:
{
"version": 1,
"fields": { "site": "string" },
"format": "{prefix}-{site}-{counter:06d}",
"regexp": "^[A-Z0-9]+-[A-Z0-9]+-[0-9]{6}$"
}
Options:
--article TEXT— article number (1-32 chars, [A-Za-z0-9-]) [required]--description TEXT— human-readable description (1-100 chars) [required]--prefix TEXT— serial prefix (1-10 chars, [A-Za-z0-9]) [required]--schema-file PATH— path to JSON file containing the ArticleSchema [required]--disabled / --no-disabled— create as disabled (default: enabled)
Update Article
serial article update ARTICLE_NO --description "New description"
serial article update ARTICLE_NO --prefix NEWP --disabled
At least one option must be provided. Options: --description, --prefix, --disabled/--no-disabled, --schema-file.
Delete Article
serial article delete ARTICLE_NO
Idempotent — succeeds even if the article does not exist.
Set Sequence Counter
serial article set-sequence ARTICLE_NO SEQUENCE_NO
serial article set-sequence 710-4130 1000
Sets the current counter value (integer ≥ 0) for the article.
Serial Number Commands
Generate Serial Numbers
serial generate ARTICLE_NO
serial generate ARTICLE_NO --quantity 5
serial generate ARTICLE_NO --field site=Stockholm --field year=2024
serial generate ARTICLE_NO --quantity 3 --output json
Options:
--quantity INT— number of serials to generate (1-1000, default 1)--field KEY=VALUE— extra field value consumed by the article schema (repeatable)
Lookup a Serial Number
serial lookup SERIAL_NO
serial lookup QWDNA010000001 --output json
Returns: serial value, article, created_by, created_at.
Site Commands
List Sites
serial site list
serial site list --output json
Create Site
serial site create --site-no 5 --name "Helsinki"
Options:
--site-no INT— site number (1-99) [required]--name TEXT— site name [required]
Update Site
serial site update 5 --name "Helsinki" --contact-email ops@example.com
serial site update 5 --name "Helsinki" --disabled
Note: --name is required by the API even when only updating other fields.
Options:
--name TEXT— new site name [required]--client-id TEXT— associated client ID (or empty to clear)--contact-email TEXT— contact email address (or empty to clear)--disabled / --no-disabled— enable or disable the site
Delete Site
serial site delete 5
Idempotent — succeeds even if the site does not exist.
Audit Commands
These commands require the app.admin.api scope.
List Audit Entries
serial audit list
serial audit list --limit 50 --output json
Returns audit entries newest-first: id, touched_table, touched_key, change_type (create/update/delete), changed_by, changed_at.
Options:
--limit INT— max entries to return (1-500, default 100)
Restore an Audit Entry
serial audit restore AUDIT_ID
Undoes the audited change:
create→ deletes the created rowupdate→ restores previous valuesdelete→ re-inserts the deleted row
If the token lacks the admin scope, the API returns 403 and the CLI will display:
Access denied. Ensure your credentials include the admin scope (app.admin.api).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lr_serial-0.3.0-py3-none-any.whl.
File metadata
- Download URL: lr_serial-0.3.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f33e41e58c37d08f394491a8f7f0d61747bee1dfc65126090b11c4c1f773c0a
|
|
| MD5 |
c2757fe18189d836fac208af65c0a9a8
|
|
| BLAKE2b-256 |
926cc81dab34939b7e650963e11b6fa98250541896e20b6843751c4ed0aa0796
|