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.

For maintainer-facing internals and invariants, see src/README.md.

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 authentication-facing directory boundary shared by Python services:

  • service and end-user bind flows, including UiO's people/system user-DN fallback
  • bounded ldap3 connect and receive timeouts
  • escaped equality-filter composition plus raw RFC 4515 filters when needed
  • user and people lookup with normalized netgroup/filegroup membership
  • stable exceptions and password-safe reproduction commands for diagnostics

It intentionally does not reproduce the legacy CLI's unrelated host, organization, filegroup, or automount command surface.

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.2.tar.gz (171.5 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.2-py3-none-any.whl (134.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: osp_uio_integrations-0.2.2.tar.gz
  • Upload date:
  • Size: 171.5 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.2.tar.gz
Algorithm Hash digest
SHA256 041c34d005a2a084448cd55137a7e9396df1f38721c377de2b53893473a8c676
MD5 e90df4a093a3470cc22b0b85e52cbea0
BLAKE2b-256 252c65e9c5ab2bdcc64024a77d4c3b0b7928ef78b0260a3ca493bf3c502e36b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osp_uio_integrations-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 763716d30f158142a1eb75bcaa0d03c0530c003d166c319ee014c9c959e707fa
MD5 468a1acb1fb80477676c6d8a0a24a14c
BLAKE2b-256 16a2f06a5ab146d53663be274c27fb6156698598b5638735d5171e7fe77ea3b8

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