Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/keria/app/agenting.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@
from keri.vdr.eventing import Tevery
from keri.app import challenging

from keria.utils.openapi import dataclassFromFielddom

from . import aiding, notifying, indirecting, credentialing, ipexing, delegating
from . import grouping as keriagrouping
from .serving import GracefulShutdownDoer
Expand Down Expand Up @@ -1845,6 +1847,31 @@ def on_get(req, rep):
rep.data = json.dumps(states).encode("utf-8")


exnFieldDomV1 = serdering.SerderKERI.Fields[serdering.Protocols.keri][
serdering.Vrsn_1_0
][serdering.Ilks.exn]
EXN_V_1, EXNSchema_V_1 = dataclassFromFielddom("EXN_V_1", exnFieldDomV1)
exnFieldDomV2 = serdering.SerderKERI.Fields[serdering.Protocols.keri][
serdering.Vrsn_2_0
][serdering.Ilks.exn]
EXN_V_2, EXNSchema_V_2 = dataclassFromFielddom("EXN_V_2", exnFieldDomV2)

issFieldDomV1 = serdering.SerderKERI.Fields[serdering.Protocols.keri][
serdering.Vrsn_1_0
][serdering.Ilks.iss]
ISS_V_1, ISSSchema_V_1 = dataclassFromFielddom("ISS_V_1", issFieldDomV1)

revFieldDomV1 = serdering.SerderKERI.Fields[serdering.Protocols.keri][
serdering.Vrsn_1_0
][serdering.Ilks.rev]
REV_V_1, REVSchema_V_1 = dataclassFromFielddom("REV_V_1", revFieldDomV1)

vcpFieldDomV1 = serdering.SerderKERI.Fields[serdering.Protocols.keri][
serdering.Vrsn_1_0
][serdering.Ilks.vcp]
VCP_V_1, VCPSchema_V_1 = dataclassFromFielddom("VCP_V_1", vcpFieldDomV1)


@dataclass
class KeyEventRecord:
"""Key Event Record for KEL"""
Expand Down
46 changes: 36 additions & 10 deletions src/keria/app/aiding.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,7 @@
from marshmallow_dataclass import class_schema
from ..core import longrunning, httping
from ..utils.openapi import namedtupleToEnum, dataclassFromFielddom
from .credentialing import (
ICP_V_1,
ICP_V_2,
ROT_V_1,
ROT_V_2,
DIP_V_1,
DIP_V_2,
DRT_V_1,
DRT_V_2,
)
from keri.core.serdering import Protocols, Vrsn_1_0, Vrsn_2_0, SerderKERI

logger = ogler.getLogger()

Expand Down Expand Up @@ -87,6 +78,41 @@ def loadEnds(app, agency, authn):
return aidEnd


@dataclass
class Seal:
s: str
d: str
i: Optional[str] = field(
default=None, metadata={"marshmallow_field": fields.String(allow_none=False)}
)


ixnFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.ixn]
IXN_V_1, IXNSchema_V_1 = dataclassFromFielddom("IXN_V_1", ixnFieldDomV1)
ixnFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.ixn]
IXN_V_2, IXNSchema_V_2 = dataclassFromFielddom("IXN_V_2", ixnFieldDomV2)

icpFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.icp]
ICP_V_1, ICPSchema_V_1 = dataclassFromFielddom("ICP_V_1", icpFieldDomV1)
icpFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.icp]
ICP_V_2, ICPSchema_V_2 = dataclassFromFielddom("ICP_V_2", icpFieldDomV2)

rotFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.rot]
ROT_V_1, ROTSchema_V_1 = dataclassFromFielddom("ROT_V_1", rotFieldDomV1)
rotFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.rot]
ROT_V_2, ROTSchema_V_2 = dataclassFromFielddom("ROT_V_2", rotFieldDomV2)

dipFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.dip]
DIP_V_1, DIPSchema_V_1 = dataclassFromFielddom("DIP_V_1", dipFieldDomV1)
dipFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.dip]
DIP_V_2, DIPSchema_V_2 = dataclassFromFielddom("DIP_V_2", dipFieldDomV2)

drtFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.drt]
DRT_V_1, DRTSchema_V_1 = dataclassFromFielddom("DRT_V_1", drtFieldDomV1)
drtFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.drt]
DRT_V_2, DRTSchema_V_2 = dataclassFromFielddom("DRT_V_2", drtFieldDomV2)


@dataclass
class KeyStateRecord(basing.KeyStateRecord):
k: list[str] = field(
Expand Down
74 changes: 26 additions & 48 deletions src/keria/app/credentialing.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,19 @@
from ..core import httping, longrunning
from marshmallow import fields, Schema as MarshmallowSchema
from typing import List, Dict, Any, Optional, Tuple, Literal, Union
from .aiding import (
Seal,
ICP_V_1,
ICP_V_2,
ROT_V_1,
ROT_V_2,
DIP_V_1,
DIP_V_2,
DRT_V_1,
DRT_V_2,
IXN_V_1,
IXN_V_2,
)


logger = help.ogler.getLogger()
Expand Down Expand Up @@ -77,15 +90,6 @@ class ACDCAttributes:
# Override the schema to force additionalProperties=True


@dataclass
class Seal:
s: str
d: str
i: Optional[str] = field(
default=None, metadata={"marshmallow_field": fields.String(allow_none=False)}
)


acdcCustomTypes = {
"a": ACDCAttributes,
"A": Union[str, List[Any]],
Expand Down Expand Up @@ -169,33 +173,18 @@ class Anchor:
d: str


ixnCustomTypes = {
"a": List[Seal],
}
ixnFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.ixn]
IXN_V_1, IXNSchema_V_1 = dataclassFromFielddom("IXN_V_1", ixnFieldDomV1, ixnCustomTypes)
ixnFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.ixn]
IXN_V_2, IXNSchema_V_2 = dataclassFromFielddom("IXN_V_2", ixnFieldDomV2, ixnCustomTypes)

icpFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.icp]
ICP_V_1, ICPSchema_V_1 = dataclassFromFielddom("ICP_V_1", icpFieldDomV1)
icpFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.icp]
ICP_V_2, ICPSchema_V_2 = dataclassFromFielddom("ICP_V_2", icpFieldDomV2)

rotFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.rot]
ROT_V_1, ROTSchema_V_1 = dataclassFromFielddom("ROT_V_1", rotFieldDomV1)
rotFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.rot]
ROT_V_2, ROTSchema_V_2 = dataclassFromFielddom("ROT_V_2", rotFieldDomV2)

dipFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.dip]
DIP_V_1, DIPSchema_V_1 = dataclassFromFielddom("DIP_V_1", dipFieldDomV1)
dipFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.dip]
DIP_V_2, DIPSchema_V_2 = dataclassFromFielddom("DIP_V_2", dipFieldDomV2)

drtFieldDomV1 = SerderKERI.Fields[Protocols.keri][Vrsn_1_0][coring.Ilks.drt]
DRT_V_1, DRTSchema_V_1 = dataclassFromFielddom("DRT_V_1", drtFieldDomV1)
drtFieldDomV2 = SerderKERI.Fields[Protocols.keri][Vrsn_2_0][coring.Ilks.drt]
DRT_V_2, DRTSchema_V_2 = dataclassFromFielddom("DRT_V_2", drtFieldDomV2)
AnchoringEvent = Union[
IXN_V_1,
IXN_V_2,
ICP_V_1,
ICP_V_2,
ROT_V_1,
ROT_V_2,
DIP_V_1,
DIP_V_2,
DRT_V_1,
DRT_V_2,
]


@dataclass
Expand All @@ -211,18 +200,7 @@ class ClonedCredential:
chains: List[Dict[str, Any]]
status: Union[CredentialStateIssOrRev, CredentialStateBisOrBrv]
anchor: Anchor
anc: Union[
"IXN_V_1",
"IXN_V_2",
"ICP_V_1",
"ICP_V_2",
"ROT_V_1",
"ROT_V_2",
"DIP_V_1",
"DIP_V_2",
"DRT_V_1",
"DRT_V_2",
]
anc: AnchoringEvent # type: ignore
ancatc: str


Expand Down
12 changes: 12 additions & 0 deletions src/keria/app/delegating.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,18 @@ def on_post(self, req, rep, name):
rep (Response): falcon.Response HTTP response object
name (str): human readable name or prefix for Hab to rename

responses:
200:
description: Delegation approved and interaction event created.
content:
application/json:
schema:
$ref: '#/components/schemas/Operation'
400:
description: Bad request. This could be due to missing or invalid parameters.
404:
description: Not found. The specified identifier does not exist.

"""
if not name:
raise falcon.HTTPBadRequest(description="name is required")
Expand Down
Loading
Loading