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:
@@ -67,7 +67,11 @@ from govoplan_connectors.backend.tabular_sources import (
|
||||
from govoplan_connectors.backend.datasource_origins import (
|
||||
ConnectorDatasourceOriginProvider,
|
||||
)
|
||||
from govoplan_connectors.backend.feeds import ConnectorFeedProvider
|
||||
from govoplan_connectors.backend.feeds import (
|
||||
FEED_PRIVATE_PUBLISH_SCOPE,
|
||||
FEED_PUBLISH_SCOPE,
|
||||
ConnectorFeedProvider,
|
||||
)
|
||||
from govoplan_connectors.backend.provider_state import (
|
||||
SANCTIONS_PROVIDER_ID,
|
||||
TABULAR_PROVIDER_ID,
|
||||
@@ -77,11 +81,11 @@ from govoplan_connectors.backend.provider_state import (
|
||||
|
||||
|
||||
MODULE_ID = "connectors"
|
||||
MODULE_VERSION = "0.1.18"
|
||||
MODULE_VERSION = "0.1.19"
|
||||
TABULAR_SOURCE_INTERFACE_VERSION = "0.1.0"
|
||||
DATASOURCE_ORIGIN_INTERFACE_VERSION = "0.1.0"
|
||||
SANCTIONS_SNAPSHOT_INTERFACE_VERSION = "1.0.0"
|
||||
FEED_INTERFACE_VERSION = "0.1.0"
|
||||
FEED_INTERFACE_VERSION = "0.2.0"
|
||||
CONNECTOR_RUNTIME_INTERFACE_VERSION = "1.0.0"
|
||||
|
||||
ARCHITECTURE = ModuleArchitectureDeclaration(
|
||||
@@ -278,6 +282,16 @@ PERMISSIONS = (
|
||||
"Administer connector sources",
|
||||
"Manage tenant connector sources, versioned definitions, protected overrides, and review policies.",
|
||||
),
|
||||
_permission(
|
||||
FEED_PUBLISH_SCOPE,
|
||||
"Publish public feeds",
|
||||
"Render provenance-bearing public RSS or Atom output from selected GovOPlaN objects.",
|
||||
),
|
||||
_permission(
|
||||
FEED_PRIVATE_PUBLISH_SCOPE,
|
||||
"Publish restricted feeds",
|
||||
"Render tenant or private RSS or Atom output after the owning product surface has authorized every selected object.",
|
||||
),
|
||||
_permission(
|
||||
SANCTIONS_READ_SCOPE,
|
||||
"View sanctions source evidence",
|
||||
@@ -299,6 +313,8 @@ ROLE_TEMPLATES = (
|
||||
READ_SCOPE,
|
||||
WRITE_SCOPE,
|
||||
ADMIN_SCOPE,
|
||||
FEED_PUBLISH_SCOPE,
|
||||
FEED_PRIVATE_PUBLISH_SCOPE,
|
||||
SANCTIONS_READ_SCOPE,
|
||||
SANCTIONS_REFRESH_SCOPE,
|
||||
),
|
||||
@@ -310,6 +326,7 @@ ROLE_TEMPLATES = (
|
||||
permissions=(
|
||||
READ_SCOPE,
|
||||
WRITE_SCOPE,
|
||||
FEED_PUBLISH_SCOPE,
|
||||
SANCTIONS_READ_SCOPE,
|
||||
SANCTIONS_REFRESH_SCOPE,
|
||||
),
|
||||
@@ -649,8 +666,13 @@ manifest = ModuleManifest(
|
||||
"Connectors owns bounded, SSRF-protected RSS/Atom transport and XML "
|
||||
"parsing. Imported entries become immutable tabular snapshots exposed "
|
||||
"through Datasources, including acquisition, freshness, ETag, content "
|
||||
"digest, and source provenance. Portal or Reporting owns publication "
|
||||
"routes and must pass the allowed visibility set when rendering output. "
|
||||
"digest, and source provenance. Emission accepts only provenance-bearing "
|
||||
"event, publication, case, or report selections from an owning surface. "
|
||||
"The requested audience determines the visibility ceiling: public output "
|
||||
"contains only public entries, while tenant or private output requires a "
|
||||
"separate restricted-feed permission. Callers cannot supply their own "
|
||||
"visibility allow-list. Portal or Reporting owns durable publication "
|
||||
"routes and must re-authorize access on every restricted feed request. "
|
||||
"A separate RSS module is only warranted if GovOPlaN later needs a "
|
||||
"dedicated feed-reader product surface."
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user