feat(connectors): govern RSS and Atom publication
Module Package Release / publish-packages (push) Successful in 11s
Module Package Release / publish-packages (push) Successful in 11s
This commit is contained in:
@@ -36,6 +36,17 @@ class FeedEntryPayload(BaseModel):
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class FeedPublicationEntryPayload(FeedEntryPayload):
|
||||
source_kind: Literal["event", "publication", "case", "report"]
|
||||
source_module: str = Field(
|
||||
min_length=1,
|
||||
max_length=100,
|
||||
pattern=r"^[a-z][a-z0-9_]*$",
|
||||
)
|
||||
source_ref: str = Field(min_length=1, max_length=500)
|
||||
source_revision: str | None = Field(default=None, max_length=200)
|
||||
|
||||
|
||||
class FeedDocumentResponse(BaseModel):
|
||||
format: Literal["rss", "atom"]
|
||||
title: str
|
||||
@@ -61,11 +72,11 @@ class FeedRenderPayload(BaseModel):
|
||||
home_url: str = Field(min_length=1, max_length=2000)
|
||||
description: str | None = None
|
||||
language: str | None = Field(default=None, max_length=100)
|
||||
entries: list[FeedEntryPayload] = Field(default_factory=list, max_length=10_000)
|
||||
allowed_visibilities: list[Literal["public", "tenant", "private"]] = Field(
|
||||
default_factory=lambda: ["public"],
|
||||
max_length=3,
|
||||
entries: list[FeedPublicationEntryPayload] = Field(
|
||||
default_factory=list,
|
||||
max_length=10_000,
|
||||
)
|
||||
audience: Literal["public", "tenant", "private"] = "public"
|
||||
|
||||
|
||||
class SnapshotCreateRequest(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user