{"id":20427847,"url":"https://github.com/daylily-informatics/zebra_day","last_synced_at":"2026-04-03T17:01:35.283Z","repository":{"id":203398644,"uuid":"708317427","full_name":"Daylily-Informatics/zebra_day","owner":"Daylily-Informatics","description":"Zebra Label Printing library \u0026 API (for network connected printers).  Manage 100s of printers and ZPL label templates in one place. ","archived":false,"fork":false,"pushed_at":"2024-05-09T18:26:02.000Z","size":20163,"stargazers_count":9,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T13:45:23.607Z","etag":null,"topics":["aws","barcode","barcode-generator","bioinformatics","direct-thermal","direct-thermal-transfer","discovery-service","labeling-tool","laboratory-automation","operations-engineering","python","salesforce","thermal-transfer","universal-barcoding","zebra","zebra-label-printers","zebra-printer","zpl","zpl2png"],"latest_commit_sha":null,"homepage":"http://daylilyinformatics.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Daylily-Informatics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-22T07:31:28.000Z","updated_at":"2024-12-03T23:43:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa55479f-6a59-45d1-b7b3-cca6ea190683","html_url":"https://github.com/Daylily-Informatics/zebra_day","commit_stats":{"total_commits":241,"total_committers":2,"mean_commits":120.5,"dds":"0.24896265560165975","last_synced_commit":"2c43af6d1407c311acf88b37677333f1f8ac35f2"},"previous_names":["daylily-informatics/zebra_day"],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daylily-Informatics%2Fzebra_day","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daylily-Informatics%2Fzebra_day/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daylily-Informatics%2Fzebra_day/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daylily-Informatics%2Fzebra_day/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daylily-Informatics","download_url":"https://codeload.github.com/Daylily-Informatics/zebra_day/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248619054,"owners_count":21134336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","barcode","barcode-generator","bioinformatics","direct-thermal","direct-thermal-transfer","discovery-service","labeling-tool","laboratory-automation","operations-engineering","python","salesforce","thermal-transfer","universal-barcoding","zebra","zebra-label-printers","zebra-printer","zpl","zpl2png"],"created_at":"2024-11-15T07:22:47.974Z","updated_at":"2026-04-03T17:01:35.245Z","avatar_url":"https://github.com/Daylily-Informatics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zebra_day\n\n`zebra_day` is a Python library, CLI, simulator, and FastAPI web service for managing Zebra printer fleets and serving ZPL print workflows. Shared fleet state, templates, label profiles, observations, and print jobs now live in `daylily-tapdb` only.\n\n## What Changed\n\n- TapDB is the only supported shared datastore.\n- `source ./activate \u003cdeploy-name\u003e` is the only supported repo activation path.\n- The service/admin runtime uses direct TapDB access through `ZebraDayClient`.\n- Downstream Python applications should use `ZebraDayApiClient` against a running zebra_day API.\n- Cognito is the default auth mode. `--no-auth` remains the explicit runtime override.\n\nRemoved in this major cut:\n\n- local fleet/config files as runtime state\n- DynamoDB and S3 runtime support\n- `print_mgr.zpl()` and package-root helper shims\n- `zday_start`, `zday_quickstart`, and `zday dynamo`\n\n## Quickstart\n\n```bash\nsource ./activate local\nzday config init\nzday config status\nzday gui start\n```\n\nThe default GUI port is `8118`. HTTPS is enabled automatically when local certs are available.\n\n## Runtime Model\n\n```mermaid\nflowchart LR\n    CLI[\"zday CLI\"] --\u003e Service[\"zebra_day service/runtime\"]\n    GUI[\"FastAPI + Jinja UI\"] --\u003e Service\n    APIClient[\"ZebraDayApiClient\"] --\u003e API[\"zebra_day HTTP API\"]\n    API --\u003e Service\n    Service --\u003e TapDB[\"daylily-tapdb namespace\"]\n    Service --\u003e Printers[\"Zebra printers over TCP 9100\"]\n    Simulator[\"simulator\"] --\u003e Printers\n```\n\n## Python Usage\n\nDirect service/admin usage:\n\n```python\nfrom zebra_day import ZebraDayClient, ZebraDaySettings\n\nsettings = ZebraDaySettings.from_context(\"local\")\nclient = ZebraDayClient(settings)\nprinters = client.list_printers(\"default\")\n```\n\nDownstream app usage:\n\n```python\nfrom zebra_day import ZebraDayApiClient\n\nwith ZebraDayApiClient(\"https://localhost:8118\", api_key=\"internal-token\") as client:\n    printers = client.list_printers(\"default\")\n    client.submit_print_job(\n        lab=\"default\",\n        printer=\"printer-1\",\n        label_zpl_style=\"tube_2inX1in\",\n        uid_barcode=\"SAMPLE-001\",\n    )\n```\n\n## CLI Surface\n\n- `zday gui ...`: start, stop, restart, and inspect the GUI server\n- `zday printer ...`: list, scan, and sync printers\n- `zday template ...`: list, show, save, preview, and delete templates\n- `zday tapdb ...`: pass through to TapDB lifecycle commands\n- `zday cognito ...`: inspect or validate the daycog-backed auth contract\n- `zday users ...`: manage Cognito group membership for operator/admin roles\n- `zday logs ...`: inspect zebra_day GUI logs\n\n## Docs\n\n- [docs/README.md](docs/README.md)\n- [zebra_day/docs/programatic_guide.md](zebra_day/docs/programatic_guide.md)\n- [zebra_day/docs/zebra_day_ui_guide.md](zebra_day/docs/zebra_day_ui_guide.md)\n- [docs/tapdb_hard_migration_plan.md](docs/tapdb_hard_migration_plan.md)\n\n## Development Checks\n\n```bash\nruff check zebra_day tests\nruff format --check zebra_day tests\nmypy zebra_day --ignore-missing-imports\npytest tests/ -v --tb=short\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaylily-informatics%2Fzebra_day","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaylily-informatics%2Fzebra_day","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaylily-informatics%2Fzebra_day/lists"}