| Name | abssctl JSON |
| Version |
0.1.3a1
JSON |
| download |
| home_page | None |
| Summary | Actual Budget Multi-Instance Sync Server Admin CLI |
| upload_time | 2025-10-08 02:10:26 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.11 |
| license | MIT License Copyright (c) 2025 Ken Robinson (DocCyblade) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| keywords |
actual
admin
budget
cli
turnkey
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
======================================
abssctl — Actual Sync Server Admin CLI
======================================
.. image:: https://img.shields.io/badge/status-alpha-blue
:alt: Project maturity badge showing Alpha status
``abssctl`` is a planned, batteries-included command line tool that installs and
manages multiple Actual Budget Sync Server instances on the TurnKey Linux
Node.js appliance. The CLI will own the full lifecycle: provisioning new
instances, performing upgrades or rollbacks, managing nginx and systemd
integrations, and producing support bundles for operators.
Project Facts
=============
- **Project name:** Actual Budget Multi-Instance Sync Server Admin CLI.
- **CLI executable:** ``abssctl`` (Actual Budget Sync Server ConTroL).
The project is currently in the **Alpha (foundations)** phase. The repository
builds on the bootstrap work from Pre-Alpha and now focuses on wiring core
services: configuration, state management, and read-only workflows that unlock
future instance operations.
Key Objectives
==============
- Provide a predictable Python package that can be installed with ``pip`` or
``pipx`` and exposes an ``abssctl`` executable.
- Establish documentation sources in reStructuredText with Sphinx as the build
system (see ``docs/source``).
- Enforce quality gates via linting, type checking, and tests in continuous
integration.
- Capture all architectural decisions in ``docs/adrs`` and maintain living
requirements under ``docs/requirements``.
Quick Start (Alpha Foundations)
===============================
.. note::
The CLI is still stabilising APIs during Alpha. Initial commands focus on
configuration and read-only inspection; mutating workflows arrive once the
providers and state engine solidify.
1. Create a Python 3.11 virtual environment stored in ``.venv`` with a prompt label ``dev`` and activate it::
python3.11 -m venv .venv --prompt dev
source .venv/bin/activate
2. Install the package in editable mode together with developer dependencies::
pip install -e .[dev]
This registers ``abssctl`` with your virtualenv so commands and tests import
without needing to tweak ``PYTHONPATH``.
3. Run the basic quality checks::
ruff check src tests
mypy src
pytest
4. Invoke the CLI skeleton::
abssctl --help
abssctl --version
abssctl config show
abssctl version list --json
abssctl instance list --json
Repository Layout
=================
- ``src/abssctl`` — Python package containing the Typer-based CLI scaffold.
- ``tests`` — Pytest suite covering CLI entry points and future modules.
- ``docs`` — Requirements, ADRs, Sphinx sources, and generated support matrix.
- ``tools`` — Utility scripts used during development (e.g., support matrix generator).
Configuration Basics
====================
The configuration loader follows ADR-023 precedence: built-in defaults,
``/etc/abssctl/config.yml``, environment variables prefixed with
``ABSSCTL_``, and finally CLI overrides such as ``--config-file``. Use
``abssctl config show`` (or ``--json``) to inspect the merged values and
confirm environment overrides are applied as expected.
Read-only registry commands are now wired up: ``abssctl version list`` and
``abssctl instance list`` surface the contents of ``versions.yml`` and
``instances.yml`` respectively, while ``abssctl instance show <name>`` displays
details for a single instance. Use ``--remote`` with ``version list`` to pull
published versions from npm when the CLI is available (falls back gracefully if
``npm`` is missing). All commands accept ``--config-file`` so you can point at
alternate configuration sources when testing or operating multiple environments.
Roadmap & Specifications
========================
- Requirements & project plan: ``docs/requirements/abssctl-app-specs.txt``
- Milestone roadmap tracker: ``docs/roadmap.rst``
- Architecture Decision Records: ``docs/adrs``
- Support matrix source: ``docs/support/actual-support-matrix.yml``
Community & Licensing
=====================
The project is released under the MIT License (``LICENSE``). Contributions are
welcome—please review the developer guide skeleton under ``docs/source`` for the
expected workflow and coding standards as they evolve.
Branch Strategy
===============
- ``main`` — production-ready releases tagged for PyPI.
- ``dev`` — integration branch for upcoming development builds.
- ``dev-alpha`` — working branch for the foundations milestone and experimental CLI work.
- Short-lived feature branches support focused working sessions.
Roadmap Snapshot
================
- **Pre-Alpha — Repo Bootstrap (complete):** scaffold layout, ``pyproject.toml``, docs
skeleton, CI with lint/test.
- **Alpha Builds — Foundations:** CLI skeleton beyond placeholders, config
loader, logging, state/lock primitives, template engine, read-only commands,
JSON output plumbing. Publish dev builds to PyPI from tags on ``dev``.
- **Beta Releases — Core Features:** Version operations, instance lifecycle,
systemd/nginx providers, doctor basics. All updates become non-destructive or
ship with migration hooks.
- **Release Candidate — Quality & Docs:** Support bundle, robust errors, man
pages & completion, full docs & examples, CI integration tests on TurnKey
Linux VMs. Automate PyPI release from GitHub actions.
- **Release — v1.0.0:** Burn-in testing across supported Actual versions,
release on a green pipeline with documentation sign-off.
Raw data
{
"_id": null,
"home_page": null,
"name": "abssctl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "actual, admin, budget, cli, turnkey",
"author": null,
"author_email": "Ken Robinson <doccyblade@homepost.org>",
"download_url": "https://files.pythonhosted.org/packages/08/32/7e2bf5636eb561c5f7e3db5f40958d89b86073e51c9c0389648941c66d05/abssctl-0.1.3a1.tar.gz",
"platform": null,
"description": "======================================\nabssctl \u2014 Actual Sync Server Admin CLI\n======================================\n\n.. image:: https://img.shields.io/badge/status-alpha-blue\n :alt: Project maturity badge showing Alpha status\n\n``abssctl`` is a planned, batteries-included command line tool that installs and\nmanages multiple Actual Budget Sync Server instances on the TurnKey Linux\nNode.js appliance. The CLI will own the full lifecycle: provisioning new\ninstances, performing upgrades or rollbacks, managing nginx and systemd\nintegrations, and producing support bundles for operators.\n\nProject Facts\n=============\n\n- **Project name:** Actual Budget Multi-Instance Sync Server Admin CLI.\n- **CLI executable:** ``abssctl`` (Actual Budget Sync Server ConTroL).\n\nThe project is currently in the **Alpha (foundations)** phase. The repository\nbuilds on the bootstrap work from Pre-Alpha and now focuses on wiring core\nservices: configuration, state management, and read-only workflows that unlock\nfuture instance operations.\n\nKey Objectives\n==============\n\n- Provide a predictable Python package that can be installed with ``pip`` or\n ``pipx`` and exposes an ``abssctl`` executable.\n- Establish documentation sources in reStructuredText with Sphinx as the build\n system (see ``docs/source``).\n- Enforce quality gates via linting, type checking, and tests in continuous\n integration.\n- Capture all architectural decisions in ``docs/adrs`` and maintain living\n requirements under ``docs/requirements``.\n\nQuick Start (Alpha Foundations)\n===============================\n\n.. note::\n The CLI is still stabilising APIs during Alpha. Initial commands focus on\n configuration and read-only inspection; mutating workflows arrive once the\n providers and state engine solidify.\n\n1. Create a Python 3.11 virtual environment stored in ``.venv`` with a prompt label ``dev`` and activate it::\n\n python3.11 -m venv .venv --prompt dev\n source .venv/bin/activate\n\n2. Install the package in editable mode together with developer dependencies::\n\n pip install -e .[dev]\n\n This registers ``abssctl`` with your virtualenv so commands and tests import\n without needing to tweak ``PYTHONPATH``.\n\n3. Run the basic quality checks::\n\n ruff check src tests\n mypy src\n pytest\n\n4. Invoke the CLI skeleton::\n\n abssctl --help\n abssctl --version\n abssctl config show\n abssctl version list --json\n abssctl instance list --json\n\nRepository Layout\n=================\n\n- ``src/abssctl`` \u2014 Python package containing the Typer-based CLI scaffold.\n- ``tests`` \u2014 Pytest suite covering CLI entry points and future modules.\n- ``docs`` \u2014 Requirements, ADRs, Sphinx sources, and generated support matrix.\n- ``tools`` \u2014 Utility scripts used during development (e.g., support matrix generator).\n\nConfiguration Basics\n====================\n\nThe configuration loader follows ADR-023 precedence: built-in defaults,\n``/etc/abssctl/config.yml``, environment variables prefixed with\n``ABSSCTL_``, and finally CLI overrides such as ``--config-file``. Use\n``abssctl config show`` (or ``--json``) to inspect the merged values and\nconfirm environment overrides are applied as expected.\n\nRead-only registry commands are now wired up: ``abssctl version list`` and\n``abssctl instance list`` surface the contents of ``versions.yml`` and\n``instances.yml`` respectively, while ``abssctl instance show <name>`` displays\ndetails for a single instance. Use ``--remote`` with ``version list`` to pull\npublished versions from npm when the CLI is available (falls back gracefully if\n``npm`` is missing). All commands accept ``--config-file`` so you can point at\nalternate configuration sources when testing or operating multiple environments.\n\nRoadmap & Specifications\n========================\n\n- Requirements & project plan: ``docs/requirements/abssctl-app-specs.txt``\n- Milestone roadmap tracker: ``docs/roadmap.rst``\n- Architecture Decision Records: ``docs/adrs``\n- Support matrix source: ``docs/support/actual-support-matrix.yml``\n\nCommunity & Licensing\n=====================\n\nThe project is released under the MIT License (``LICENSE``). Contributions are\nwelcome\u2014please review the developer guide skeleton under ``docs/source`` for the\nexpected workflow and coding standards as they evolve.\n\nBranch Strategy\n===============\n\n- ``main`` \u2014 production-ready releases tagged for PyPI.\n- ``dev`` \u2014 integration branch for upcoming development builds.\n- ``dev-alpha`` \u2014 working branch for the foundations milestone and experimental CLI work.\n- Short-lived feature branches support focused working sessions.\n\nRoadmap Snapshot\n================\n\n- **Pre-Alpha \u2014 Repo Bootstrap (complete):** scaffold layout, ``pyproject.toml``, docs\n skeleton, CI with lint/test.\n- **Alpha Builds \u2014 Foundations:** CLI skeleton beyond placeholders, config\n loader, logging, state/lock primitives, template engine, read-only commands,\n JSON output plumbing. Publish dev builds to PyPI from tags on ``dev``.\n- **Beta Releases \u2014 Core Features:** Version operations, instance lifecycle,\n systemd/nginx providers, doctor basics. All updates become non-destructive or\n ship with migration hooks.\n- **Release Candidate \u2014 Quality & Docs:** Support bundle, robust errors, man\n pages & completion, full docs & examples, CI integration tests on TurnKey\n Linux VMs. Automate PyPI release from GitHub actions.\n- **Release \u2014 v1.0.0:** Burn-in testing across supported Actual versions,\n release on a green pipeline with documentation sign-off.\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2025 Ken Robinson (DocCyblade) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "Actual Budget Multi-Instance Sync Server Admin CLI",
"version": "0.1.3a1",
"project_urls": {
"CI": "https://github.com/DocCyblade/abssctl/actions",
"Changelog": "https://github.com/DocCyblade/abssctl/blob/dev-alpha3/CHANGELOG.rst",
"Discussions": "https://github.com/DocCyblade/abssctl/discussions",
"Homepage": "https://doccyblade.github.io/abssctl/",
"Issues": "https://github.com/DocCyblade/abssctl/issues",
"License": "https://github.com/DocCyblade/abssctl/blob/dev-alpha3/LICENSE",
"Roadmap": "https://github.com/DocCyblade/abssctl/blob/dev-alpha3/docs/roadmap.rst",
"Source": "https://github.com/DocCyblade/abssctl"
},
"split_keywords": [
"actual",
" admin",
" budget",
" cli",
" turnkey"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6c167ff0741f807e0698008f299a248f1e7b77971300f15432473bb4c258df60",
"md5": "0f1c71fad12e85ac9327192d75b17276",
"sha256": "671b4231716432ba89e6ff3afda1250e8c3e7d7596267f81356cf20baa4c7da2"
},
"downloads": -1,
"filename": "abssctl-0.1.3a1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0f1c71fad12e85ac9327192d75b17276",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 31921,
"upload_time": "2025-10-08T02:10:24",
"upload_time_iso_8601": "2025-10-08T02:10:24.604424Z",
"url": "https://files.pythonhosted.org/packages/6c/16/7ff0741f807e0698008f299a248f1e7b77971300f15432473bb4c258df60/abssctl-0.1.3a1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "08327e2bf5636eb561c5f7e3db5f40958d89b86073e51c9c0389648941c66d05",
"md5": "083f4e5fc37f3e2c9be7cb6fdbb16350",
"sha256": "da262c511b74af7c4c6526c49ce68db3377899fa781738008b1c1333c8a8e739"
},
"downloads": -1,
"filename": "abssctl-0.1.3a1.tar.gz",
"has_sig": false,
"md5_digest": "083f4e5fc37f3e2c9be7cb6fdbb16350",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 36997,
"upload_time": "2025-10-08T02:10:26",
"upload_time_iso_8601": "2025-10-08T02:10:26.202644Z",
"url": "https://files.pythonhosted.org/packages/08/32/7e2bf5636eb561c5f7e3db5f40958d89b86073e51c9c0389648941c66d05/abssctl-0.1.3a1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-08 02:10:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DocCyblade",
"github_project": "abssctl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "abssctl"
}