Skip to main content

Arcsecond desktop and Hub bootstrap client

Project description

Focale

Focale is a thin desktop/CLI bootstrap for Arcsecond users that:

  • logs in with the user's Arcsecond account
  • creates and stores a local Hub agent identity
  • enrolls that identity with Arcsecond when needed
  • mints a short-lived Hub JWT
  • connects to the Arcsecond Hub using the signed Ed25519 challenge flow

The package depends on the published arcsecond CLI/library and reuses its account configuration instead of creating a second login system.

By default, Focale uses Arcsecond password login to obtain a short-lived bearer JWT plus a refresh token. That avoids storing a long-lived Access Key in the normal path. Access Key login is still available as a fallback.

User install

Python / terminal

pip install focale

Then:

focale login
focale context list
focale context use personal
focale connect --hub-url wss://hub.arcsecond.io/ws/agent

Windows installer

This repository includes a bootstrap for building a Windows installer from CI. The installer packages the focale executable and can optionally add it to PATH.

See:

Commands

focale login
focale login --auth-mode access-key
focale status
focale context show
focale context list
focale context use personal
focale context use my-observatory
focale doctor --hub-url wss://hub.arcsecond.io/ws/agent
focale doctor --hub-url wss://hub.arcsecond.io/ws/agent --json
focale connect --hub-url wss://hub.arcsecond.io/ws/agent
focale --api-server https://api.arcsecond.dev connect --hub-url wss://hub.arcsecond.dev/ws/agent --once
focale connect --organisation my-observatory --hub-url wss://hub.arcsecond.io/ws/agent
focale platesolver status
focale platesolver solve --peaks-file ./peaks.json

focale connect will automatically:

  1. refresh the Arcsecond access JWT when needed
  2. create a local Ed25519 keypair if needed
  3. enroll a personal or organisation-scoped agent installation if needed
  4. mint a Hub JWT
  5. discover local ASCOM Remote (Alpaca) servers and register new ones in the selected context
  6. complete the Hub challenge-response handshake

You can set the default context once and keep connect/doctor simple:

focale context use personal
# or
focale context use my-observatory

Plate solving

Plate solving is included with pip install focalearcsecond-astrometry is a mandatory dependency and ships native binaries for Windows, macOS, and Linux with no Docker or external tooling required.

focale platesolver status
focale platesolver solve --peaks-file ./peaks.json --scales 6

You can also target a remote service:

focale platesolver status --service-url http://127.0.0.1:8900
focale platesolver solve --service-url http://127.0.0.1:8900 --peaks-file ./peaks.json

Development

If you are developing Focale next to the local Arcsecond CLI checkout:

python -m venv .venv
source .venv/bin/activate
pip install -e ../arcsecond-cli
pip install -e .[dev]
pytest -q

Publishing

This repo includes:

  • a PEP 621 pyproject.toml
  • a CI workflow for tests
  • a PyPI publish workflow on tags such as v0.2.0
  • a Windows installer workflow that builds a PyInstaller bundle and wraps it with Inno Setup

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

focale-0.2.5.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

focale-0.2.5-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file focale-0.2.5.tar.gz.

File metadata

  • Download URL: focale-0.2.5.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for focale-0.2.5.tar.gz
Algorithm Hash digest
SHA256 1d0133cbc8f60c319b34af64ad5fb590fd8ce978c6415b04719515a1406f472c
MD5 2c03c68e1d6b2634621a4a0c83b44a65
BLAKE2b-256 1e8efb5844a4a0d34f0f6bace437e9b96364086e1b263136dbf38df54028cbbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for focale-0.2.5.tar.gz:

Publisher: publish.yml on arcsecond-io/focale

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file focale-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: focale-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for focale-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e0382467b147b590791b3d166fe62f35d4874b46d804a84aad427e8d629a524e
MD5 6c2ee1da610598d71147f3c96fcefc1e
BLAKE2b-256 2d7f9c3342fe29d0b0485c4870d6d5677d83725e0af4b0724b528946bfb984a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for focale-0.2.5-py3-none-any.whl:

Publisher: publish.yml on arcsecond-io/focale

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page