feat(cloud): add targeted task governance foundation
Tests / Test passed: 659

This commit is contained in:
2026-07-13 22:21:12 +08:00
parent a3ba94be04
commit 2cd314b183
41 changed files with 2099 additions and 15 deletions
@@ -215,3 +215,29 @@ class AuthAuditRow(Base):
outcome: Mapped[str] = mapped_column(String, nullable=False)
correlation_id: Mapped[str | None] = mapped_column(String, nullable=True)
metadata_json: Mapped[str] = mapped_column(Text, nullable=False, default="{}")
class UserSubmissionPolicyRow(Base):
__tablename__ = "cloud_user_submission_policies"
user_id: Mapped[str] = mapped_column(
ForeignKey("cloud_users.id", ondelete="CASCADE"), primary_key=True
)
revision: Mapped[int] = mapped_column(Integer, nullable=False)
submission_enabled: Mapped[int] = mapped_column(Integer, nullable=False)
allowed_host_ids_json: Mapped[str | None] = mapped_column(Text, nullable=True)
allowed_device_targets_json: Mapped[str | None] = mapped_column(Text, nullable=True)
updated_at: Mapped[str] = mapped_column(String, nullable=False)
class HostGovernancePolicyRow(Base):
__tablename__ = "cloud_host_governance_policies"
host_id: Mapped[str] = mapped_column(
ForeignKey("host_registrations.host_id", ondelete="CASCADE"), primary_key=True
)
revision: Mapped[int] = mapped_column(Integer, nullable=False)
self_submission_enabled: Mapped[int] = mapped_column(Integer, nullable=False)
max_active_tasks: Mapped[int | None] = mapped_column(Integer, nullable=True)
daily_token_budget: Mapped[int | None] = mapped_column(Integer, nullable=True)
updated_at: Mapped[str] = mapped_column(String, nullable=False)