Skip to main content

octodns-metaname

OctoDNS provider for the Metaname DNS API, originally bootstrapped from the upstream octodns-template. Use it to run a DNS-as-Code workflow with OctoDNS for any zones you host at Metaname.

Installation

PyPI release:

pip install octodns-metaname

If you rely on the OpsDev.nz 1Password resolver, install the optional extra:

pip install octodns-metaname[onepassword]

Editable install for local development:

python -m venv venv && source venv/bin/activate
pip install -e .[dev]

OctoDNS integration

Once installed, the provider is available via the entry point metaname. Sample config.yaml fragment:

providers:
  metaname-test:
    class: octodns_metaname.MetanameProvider
    base_url: https://test.metaname.net/api/1.1

Populate/apply workflows follow the standard OctoDNS CLI tools. Consult the OctoDNS docs for full CLI details.

Domain lifecycle CLI

Domain registration is separate from DNS record management. The CLI defaults to Metaname's test API:

octodns-metaname check example.nz
octodns-metaname list
octodns-metaname register example.nz --term 12 --confirm

Pass --production before the command to use the live API. Registration requires --confirm because it consumes test credit or incurs a production charge. Omitting --nameserver selects Metaname hosted DNS.

Optional registration during apply

The provider can register a missing domain immediately before applying its records. This is disabled by default and should normally be enabled only for the test API:

providers:
  metaname-test:
    class: octodns_metaname.MetanameProvider
    base_url: https://test.metaname.net/api/1.1
    auto_register_domains: true
    registration_term: 12

The dry-run only reports the proposed records. Registration happens during the subsequent octodns-sync --doit apply. For the production API, an additional allow_production_registration: true safeguard is required. Prefer the CLI for an explicit availability check and registration before enabling production automation.

Secret resolution

By default the provider reads secrets directly from environment variables such as METANAME_ACCOUNT_REF and METANAME_API_TOKEN. If your workflow stores values in a vault (e.g., 1Password) you can register a resolver using:

from octodns_metaname import secrets

def resolve(name: str, reference: str | None) -> str | None:
    ...

secrets.set_secret_resolver(resolve)

For CLI usage set OCTODNS_METANAME_SECRET_RESOLVER="module:function" so the resolver is loaded automatically. OpsDev.nz deployments point this at op_opsdevnz.octodns_hooks:resolve, which returns values directly from the 1Password Service Account SDK/CLI.

Development

python -m venv venv && source venv/bin/activate
pip install -e .[dev]
ruff check src tests
mypy src
pytest --maxfail=1

The repo includes a GitHub Actions workflow that runs linting, type checking, tests, and a build on every push.

Releasing

See RELEASING.md for the full TestPyPI → PyPI checklist.

License

Apache-2.0 © OpsDev.nz

Download files

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

Source Distribution

octodns_metaname-0.2.1.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

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

octodns_metaname-0.2.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file octodns_metaname-0.2.1.tar.gz.

File metadata

  • Download URL: octodns_metaname-0.2.1.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for octodns_metaname-0.2.1.tar.gz
Algorithm Hash digest
SHA256 147b7277827a85c6d32837eb35ad4623d3b933ffb6849bf9cdc48db3b970d94e
MD5 8b18fdc517909f2dbe92f568ae8311d9
BLAKE2b-256 06fe88cb105cd04403acbaee28ab3c44252094d7bec2b6687014989f52b68d7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for octodns_metaname-0.2.1.tar.gz:

Publisher: publish.yml on startmeup-nz/octodns-metaname

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

File details

Details for the file octodns_metaname-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for octodns_metaname-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8840c6286132d78a67c521636f04d2f3a2d3b01a7973a2286c081230acca3f7d
MD5 62b257cf3eb987ae7a642875fd420377
BLAKE2b-256 5a56bb18d3d2059c7c33fe101cbc51f9499887914579b79106050dc6c8425922

See more details on using hashes here.

Provenance

The following attestation bundles were made for octodns_metaname-0.2.1-py3-none-any.whl:

Publisher: publish.yml on startmeup-nz/octodns-metaname

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