angee.portfolio.schema
GraphQL resources and authored actions for portfolio strategy.
ProductType
@strawberry_django.type(Product)
class ProductType(AuthoredRefMixin, AngeeNode)GraphQL projection of a phasal Product.
owner
@strawberry_django.field(only=["owner_id"])
def owner() -> strawberry.ID | NoneReturn the owner's public id without exposing auth/user.
ConsoleProductType
@strawberry_django.type(Product)
class ConsoleProductType(AuthoredRefMixin, AngeeNode)Console Product projection with a label-bearing owner relation.
InitiativeType
@strawberry_django.type(Initiative)
class InitiativeType(AuthoredRefMixin, AngeeNode)GraphQL projection of one strategic tree node.
owner
@strawberry_django.field(only=["owner_id"])
def owner() -> strawberry.ID | NoneReturn the owner's public id without exposing auth/user.
ConsoleInitiativeType
@strawberry_django.type(Initiative)
class ConsoleInitiativeType(AuthoredRefMixin, AngeeNode)Console Initiative projection with a label-bearing owner relation.
InitiativeProjectType
@strawberry_django.type(InitiativeProject)
class InitiativeProjectType(AuthoredRefMixin, AngeeNode)GraphQL projection of an ordered Initiative-to-Project placement.
PortfolioUpdateType
@strawberry_django.type(Update)
class PortfolioUpdateType(AuthoredRefMixin, AngeeNode)GraphQL projection of one Project/Initiative health assertion.
target_model
@strawberry.field
def target_model() -> strReturn the target's Django model label.
target_id
@strawberry.field
def target_id() -> strawberry.IDReturn the target's stable public id.
ReleaseType
@strawberry_django.type(Release)
class ReleaseType(AuthoredRefMixin, AngeeNode)GraphQL projection of a Product release artifact.
ProjectPortfolioExtension
@strawberry_django.type(Project, name="ProjectType", extend=True)
class ProjectPortfolioExtension()Contribute portfolio placement and health onto ProjectType.
ConsoleProjectPortfolioExtension
@strawberry_django.type(Project, name="ConsoleProjectType", extend=True)
class ConsoleProjectPortfolioExtension()Contribute portfolio placement and health onto ConsoleProjectType.
The console schema projects Project through its own label-bearing node (ConsoleProjectType); name-targeted extensions do not carry over from ProjectType, so the same donor fields are contributed here console-only.
TaskPortfolioExtension
@strawberry_django.type(Task, name="TaskType", extend=True)
class TaskPortfolioExtension()Contribute fixed-in release attribution onto TaskType.
ConsoleTaskPortfolioExtension
@strawberry_django.type(Task, name="ConsoleTaskType", extend=True)
class ConsoleTaskPortfolioExtension()Contribute fixed-in release attribution onto ConsoleTaskType.
PortfolioActionMutation
@strawberry.type
class PortfolioActionMutation()Row-authorized maturation and health-report actions.
promote_project_to_product
@strawberry.mutation
@action_guard("Promote project to product failed.")
def promote_project_to_product(info: strawberry.Info,
id: PublicID) -> ActionResultPromote one writable Project while retaining its provenance.
report_project_update
@strawberry.mutation
@action_guard("Report project update failed.")
def report_project_update(info: strawberry.Info, id: PublicID,
health: UpdateHealthChoice,
body: str) -> ActionResultCreate one required-health report on a writable Project.
report_initiative_update
@strawberry.mutation
@action_guard("Report initiative update failed.")
def report_initiative_update(info: strawberry.Info, id: PublicID,
health: UpdateHealthChoice,
body: str) -> ActionResultCreate one required-health report on a writable Initiative.