| 1234567891011121314151617181920212223 |
- """Request identity and scope used by all DataOps MCP tools."""
- from dataclasses import dataclass
- @dataclass(frozen=True)
- class AgentIdentity:
- subject: str
- roles: frozenset
- business_domains: frozenset
- environments: frozenset
- correlation_id: str
- def require_domain(self, domain):
- if "*" not in self.business_domains and domain not in self.business_domains:
- raise PermissionError("business domain is outside identity scope")
- def require_environment(self, environment):
- if "*" not in self.environments and environment not in self.environments:
- raise PermissionError("environment is outside identity scope")
- def has_any_role(self, roles):
- return bool(self.roles.intersection(roles))
|