Skip to main content

Shared Python integrations for UiO infrastructure services.

Project description

osp-uio-integrations

Shared Python integration package for UiO-specific infrastructure systems such as LDAP, MREG, and Nivlheim.

This repository is the concrete API-glue layer for external UiO systems. It is meant to keep authentication, request/response handling, error mapping, and small normalization helpers in one place so providers and transitional orchestrator code do not duplicate that plumbing.

Maintainer-facing boundaries and invariants live in each integration package's module documentation.

Scope

  • Reusable Python clients for UiO infrastructure services
  • Shared transport/auth/session glue
  • API-specific response parsing and error translation
  • Small stable normalized helper types where duplication would otherwise grow

Current focus

The LDAP integration owns the reusable UiO directory boundary shared by Python services and CLIs:

  • service and end-user bind flows, including UiO's people/system user-DN fallback
  • bounded ldap3 connect and receive timeouts
  • safe equality and wildcard filter composition plus raw RFC 4515 filters
  • user, people, host, organization, netgroup, and filegroup lookup
  • automount lookup with the legacy one-hop LDAP indirection behavior
  • normalized membership fields where the legacy CLI already established a useful output contract
  • stable exceptions and password-safe reproduction commands for diagnostics

The MREG integration is a small synchronous library with:

  • explicit transport and auth handling
  • optional interactive login for token bootstrap
  • request metadata headers such as User-Agent and X-Correlation-ID
  • a host-focused surface covering queries, lifecycle, history, addressing, contacts, CNAMEs, and explicit DNS record modules
  • host-policy role/atom helpers, including batched role lookup for many hosts
  • VLAN host membership lookup with optional host-policy enrichment that avoids per-host API calls
  • room to grow into further MREG areas without flattening everything into one module

For concrete usage examples and a translation table from supported mreg-cli commands to this library API, see docs/mreg-cli-command-map.md.

Non-goals

  • Provider workflow or execution logic
  • Ownership, approval, or placement policy
  • Orchestrator/provider wire contracts
  • Provider-specific planning decisions

Install

pip install osp-uio-integrations

Development

env -u VIRTUAL_ENV uv sync --extra dev
hatch shell
hatch run dev:check
hatch run dev:build
hatch run dev:verify

Release

See docs/release.md for the manual tag and publish flow.

Create and push the annotated release tag from the checked-in release notes:

hatch run dev:tag-push

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

osp_uio_integrations-0.2.3.tar.gz (173.6 kB view details)

Uploaded Source

Built Distribution

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

osp_uio_integrations-0.2.3-py3-none-any.whl (135.2 kB view details)

Uploaded Python 3

File details

Details for the file osp_uio_integrations-0.2.3.tar.gz.

File metadata

  • Download URL: osp_uio_integrations-0.2.3.tar.gz
  • Upload date:
  • Size: 173.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for osp_uio_integrations-0.2.3.tar.gz
Algorithm Hash digest
SHA256 e0a502ab81f2e14170f00344fc5177776d8d21ca2d0d134747ef3639f0bddde6
MD5 c7af04be31e4ba2486c50a262540dc68
BLAKE2b-256 6b04c57840323258e808b7d1b94e8ffeeeb8a7f1cc44719ec2844769cebd995c

See more details on using hashes here.

File details

Details for the file osp_uio_integrations-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for osp_uio_integrations-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ffff8723c44af8f849d0a972a5190df3768323a531ad1664a7f059c44c00be25
MD5 e96a23ac66c2396a6ced2e571718e4e4
BLAKE2b-256 deadfc2df611b638ff9acbcf4d69dd4bb05dbbd3242e0c85cec8696a127e7a2d

See more details on using hashes here.

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