tba-protocol-workload-spiffe-workload-api 0.4.0.dev2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tba_protocol_workload_spiffe_workload_api/__init__.py +18 -0
- tba_protocol_workload_spiffe_workload_api/bindings.py +5 -0
- tba_protocol_workload_spiffe_workload_api/claims.py +5 -0
- tba_protocol_workload_spiffe_workload_api/compatibility.py +3 -0
- tba_protocol_workload_spiffe_workload_api/endpoint.py +5 -0
- tba_protocol_workload_spiffe_workload_api/errors.py +8 -0
- tba_protocol_workload_spiffe_workload_api/features.py +10 -0
- tba_protocol_workload_spiffe_workload_api/migrations.py +6 -0
- tba_protocol_workload_spiffe_workload_api/py.typed +0 -0
- tba_protocol_workload_spiffe_workload_api/rpcs.py +19 -0
- tba_protocol_workload_spiffe_workload_api/schemas.py +5 -0
- tba_protocol_workload_spiffe_workload_api/service.py +18 -0
- tba_protocol_workload_spiffe_workload_api/streams.py +6 -0
- tba_protocol_workload_spiffe_workload_api/versions.py +16 -0
- tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/METADATA +11 -0
- tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/RECORD +17 -0
- tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from .endpoint import validate_endpoint
|
|
2
|
+
from .rpcs import FORBIDDEN_EXTENSION_RPCS, RPC_DEFINITIONS, RPC_NAMES, RpcDefinition
|
|
3
|
+
from .service import WorkloadApiService
|
|
4
|
+
from .streams import validate_full_snapshot
|
|
5
|
+
from .versions import CURRENT_VERSION, VERSION_HISTORY, WorkloadApiVersion
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"CURRENT_VERSION",
|
|
9
|
+
"FORBIDDEN_EXTENSION_RPCS",
|
|
10
|
+
"RPC_DEFINITIONS",
|
|
11
|
+
"RPC_NAMES",
|
|
12
|
+
"VERSION_HISTORY",
|
|
13
|
+
"RpcDefinition",
|
|
14
|
+
"WorkloadApiService",
|
|
15
|
+
"WorkloadApiVersion",
|
|
16
|
+
"validate_endpoint",
|
|
17
|
+
"validate_full_snapshot",
|
|
18
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@dataclass(frozen=True, slots=True)
|
|
5
|
+
class RpcDefinition:
|
|
6
|
+
name: str
|
|
7
|
+
server_streaming: bool
|
|
8
|
+
profile: str
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
RPC_DEFINITIONS = (
|
|
12
|
+
RpcDefinition("FetchX509SVID", True, "x509-svid"),
|
|
13
|
+
RpcDefinition("FetchX509Bundles", True, "x509-svid"),
|
|
14
|
+
RpcDefinition("FetchJWTSVID", False, "jwt-svid"),
|
|
15
|
+
RpcDefinition("FetchJWTBundles", True, "jwt-svid"),
|
|
16
|
+
RpcDefinition("ValidateJWTSVID", False, "jwt-svid"),
|
|
17
|
+
)
|
|
18
|
+
RPC_NAMES = frozenset(item.name for item in RPC_DEFINITIONS)
|
|
19
|
+
FORBIDDEN_EXTENSION_RPCS = frozenset({"FetchWITSVID", "FetchCWTSVID"})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from collections.abc import Callable, Mapping
|
|
2
|
+
from .rpcs import RPC_NAMES
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class WorkloadApiService:
|
|
6
|
+
def __init__(self, handlers: Mapping[str, Callable[..., object]]) -> None:
|
|
7
|
+
unknown = set(handlers).difference(RPC_NAMES)
|
|
8
|
+
if unknown:
|
|
9
|
+
raise ValueError(f"Workload API must not be extended: {sorted(unknown)}")
|
|
10
|
+
missing = RPC_NAMES.difference(handlers)
|
|
11
|
+
if missing:
|
|
12
|
+
raise ValueError(f"missing Workload API handlers: {sorted(missing)}")
|
|
13
|
+
self._handlers = dict(handlers)
|
|
14
|
+
|
|
15
|
+
def dispatch(self, rpc: str, request: object) -> object:
|
|
16
|
+
if rpc not in RPC_NAMES:
|
|
17
|
+
raise ValueError(f"unknown Workload API RPC: {rpc}")
|
|
18
|
+
return self._handlers[rpc](request)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@dataclass(frozen=True, slots=True)
|
|
5
|
+
class WorkloadApiVersion:
|
|
6
|
+
identifier: str
|
|
7
|
+
status: str
|
|
8
|
+
specification_uri: str
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
CURRENT_VERSION = WorkloadApiVersion(
|
|
12
|
+
"SPIFFE-Workload-API-1.0",
|
|
13
|
+
"stable",
|
|
14
|
+
"https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE_Workload_API.md",
|
|
15
|
+
)
|
|
16
|
+
VERSION_HISTORY = (CURRENT_VERSION,)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tba-protocol-workload-spiffe-workload-api
|
|
3
|
+
Version: 0.4.0.dev2
|
|
4
|
+
Summary:
|
|
5
|
+
Requires-Python: >=3.10,<3.15
|
|
6
|
+
Classifier: Programming Language :: Python :: 3
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
tba_protocol_workload_spiffe_workload_api/__init__.py,sha256=imopGl6LYXZN_ucA5vSGO1XlTonfnd19HwxObwaroiA,546
|
|
2
|
+
tba_protocol_workload_spiffe_workload_api/bindings.py,sha256=geO7qbQkZg0dzzGv3daVxr3WhKaDUdlb382DITlWey4,163
|
|
3
|
+
tba_protocol_workload_spiffe_workload_api/claims.py,sha256=WibdHFxqAyKK9njjKwo37vO1RKj76jedqoDQs22LF6U,147
|
|
4
|
+
tba_protocol_workload_spiffe_workload_api/compatibility.py,sha256=NJlDWxyk_DEnFAu38zpg9NisAEYT2_avg5Fq2GcPa-M,171
|
|
5
|
+
tba_protocol_workload_spiffe_workload_api/endpoint.py,sha256=uX3CoWhV067njFok9xdAIRdIB1uzOiAb3djGQZMiXVU,245
|
|
6
|
+
tba_protocol_workload_spiffe_workload_api/errors.py,sha256=KwHVry4N9TO5ZP3zolvxALLJPBFjBOpiNq_-vH4F9lQ,216
|
|
7
|
+
tba_protocol_workload_spiffe_workload_api/features.py,sha256=mCzp1dC_S4_kevHmuncAK3iaZje8eEQARFJetlB22Go,213
|
|
8
|
+
tba_protocol_workload_spiffe_workload_api/migrations.py,sha256=dKYPd7qU-tpdDYRCmDdkuPFttPfVLTjOOpsRpidSNb4,228
|
|
9
|
+
tba_protocol_workload_spiffe_workload_api/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
tba_protocol_workload_spiffe_workload_api/rpcs.py,sha256=hS_q2GKrqVghgpdsajp6Pni42vSXVmli34xsgEnFACM,587
|
|
11
|
+
tba_protocol_workload_spiffe_workload_api/schemas.py,sha256=QHrkgNjQDZ4CzMQvwCKcenekGhjq2ezTtR8VdgdbcWQ,161
|
|
12
|
+
tba_protocol_workload_spiffe_workload_api/service.py,sha256=4kcwyi9CgG1IATpKkepgY-39iiRWv9ipYvjlnZexQqw,736
|
|
13
|
+
tba_protocol_workload_spiffe_workload_api/streams.py,sha256=T7IprH-XdB52pdODoiUrgFxMyklZWnF5eytARYTSbEU,267
|
|
14
|
+
tba_protocol_workload_spiffe_workload_api/versions.py,sha256=xlVNCk1qCwpkEq75N3_s-uhy0TrYOEW60TkfonRpqwM,368
|
|
15
|
+
tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/METADATA,sha256=376jELHVaqquKRUMqeml3sYXk9vMtj2-09DkQK0DIik,433
|
|
16
|
+
tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/WHEEL,sha256=L-WvLdSBvJWHXv5zrQxDvNRnIgoBzLUpcbuiw19KCuQ,88
|
|
17
|
+
tba_protocol_workload_spiffe_workload_api-0.4.0.dev2.dist-info/RECORD,,
|