Temporal Server
Platform:
| Channel | Revision | Published | Runs on |
|---|---|---|---|
| 1.23/stable | 96 | 19 Oct 2026 | |
| 1.23/stable | 60 | 30 Apr 2026 | |
| 1.23/edge | 96 | 19 Oct 2026 | |
| 1.23/edge | 60 | 09 Dec 2025 | |
| 1.31/stable | 95 | 19 Oct 2026 | |
| 1.31/edge | 95 | 19 Oct 2026 | |
| 1.31/edge | 75 | 04 Aug 2026 | |
| 1.30/edge | 90 | 16 Oct 2026 | |
| 1.29/edge | 88 | 16 Oct 2026 | |
| 1.28/edge | 87 | 16 Oct 2026 | |
| 1.27/edge | 86 | 16 Oct 2026 | |
| 1.26/edge | 83 | 15 Oct 2026 | |
| 1.25/edge | 91 | 16 Oct 2026 | |
| 1.24/edge | 84 | 16 Oct 2026 |
juju deploy temporal-k8s --channel 1.23/stable
charms.temporal_k8s.v0.temporal_host_info
-
- Last updated 14 Oct 2026
- Revision Library version 0.3
Charm library for the temporal-host-info relation interface.
This library provides the TemporalHostInfoProvider and TemporalHostInfoRequirer classes for charms that need to share Temporal server connection details (host, port and whether the frontend serves gRPC over TLS) over a Juju relation.
The tls field tells requirers which wire protocol the frontend speaks. It is
derived by the provider from whether frontend TLS is configured, and requirers
MUST honour it: dialling plaintext against a TLS frontend fails with
"error reading server preface: EOF", and the reverse fails the TLS handshake.
When tls is true, the requirer also needs the CA that issued the frontend
certificate in order to verify it. That CA is NOT carried on this relation;
it is distributed over the certificate_transfer interface, so that CA
rotation is handled by that library rather than reimplemented here.
Index
class TemporalHostInfoProvider
Description
A class for managing the temporal-host-info interface provider. None
Methods
TemporalHostInfoProvider. __init__( self , charm: CharmBase , port: int , tls , host )
Create a new instance of the TemporalHostInfoProvider class.
Description
:param: charm: The charm that is using this interface. :type charm: CharmBase :param: port: The port number to provide to requirers. This is typically the 'frontend' service port. :type port: int :param: tls: Whether the frontend serves gRPC over TLS, or a callable returning it. Pass a callable when the value is not known at charm initialisation, which is the usual case since it depends on a certificates relation. :type tls: Union[Callable[[], bool], bool] :param: host: The host requirers should dial, or a callable returning it. Typically the frontend's in-cluster service FQDN, which the frontend certificate can name. When omitted, the relation binding address is published. :type host: Union[Callable[[], str], str, None]
TemporalHostInfoProvider. publish( self , relation )
Write the connection details to the relation databag(s).
Description
Call this whenever something the published data depends on changes -- in particular when the frontend's TLS state changes -- since those events are not observed by this library.
:param: relation: A single relation to update. All relations are updated when omitted. :type relation: Relation | None
class TemporalHostInfoChangedEvent
Description
Event emitted when temporal-host-info relation data changes. None
Methods
TemporalHostInfoChangedEvent. __init__( self , handle: Handle , host: str , port: int , tls: bool )
TemporalHostInfoChangedEvent. snapshot( self )
Description
Return a snapshot of the event. None
TemporalHostInfoChangedEvent. restore( self , snapshot )
Description
Restore the event from a snapshot. None
class TemporalHostInfoRequirerCharmEvents
Description
List of events that the requirer charm can leverage. None
class TemporalHostInfoRequirer
A class for managing the temporal-host-info interface requirer.
Description
Track this relation in your charm with:
.. code-block:: python
self.host_info = TemporalHostInfoRequirer(self)
# update container with new host info
framework.observe(self.host_info.on.temporal_host_info_changed, self._on_host_info_changed)
def _on_host_info_changed(self, event):
host = self.host_info.host
port = self.host_info.port
tls = self.host_info.tls
When tls is true the frontend speaks gRPC over TLS and the requirer must
dial accordingly, verifying the server certificate against the CA received
over the certificate_transfer interface.
Methods
TemporalHostInfoRequirer. __init__( self , charm: CharmBase )
Create a new instance of the TemporalHostInfoRequirer class.
Description
:param: charm: The charm that is using this interface. :type charm: CharmBase
TemporalHostInfoRequirer. relation( self )
Description
Return the relation for this interface, if any. None
TemporalHostInfoRequirer. host( self )
Description
Return the host from the relation data. None
TemporalHostInfoRequirer. port( self )
Description
Return the port from the relation data. None
TemporalHostInfoRequirer. tls( self )
Return whether the frontend serves gRPC over TLS.
Description
Defaults to False when the field is absent, which is the case against providers older than LIBPATCH 2. That matches their behaviour: those versions never served the frontend over TLS.