charm-relation-interfaces

Charm Relation Interfaces

A catalogue of opinionated and standardized interface specifications for charmed operator relations. </br></br>

Matrix badge

Purpose

The purpose of the repository is to outline the behavior and requirements for key interface names, ensuring that charms claiming to implement a certain interface actually are capable of being integrated with each other.

Contributing

Contributing a new interface specification is a lightweight process.

Interfaces

For the time being, to see available interfaces, their statuses, and schemas, browse the interfaces directory.

Relation interface testers

In order to automatically validate whether a charm satisfies a given relation interface, the relation interface maintainer(s) need to write one or more relation interface tests. A relation interface test is a scenario-based test case which checks that, given an intitial context, when a relation event is triggered, the charm will do what the interface specifies. For example, most interface testers will check that, on relation changed, the charm will write a certain value into its (app/unit) databag and that that value matches a certain (Pydantic) schema.

See the tester documentation for more.