concierge.v1.GovernanceService

Propose granting Role::Admin (Owner only). UserDirectory.SetRole refuses that role in the granting direction and names this, for the same reason it already refuses `owner`: an operator who can appoint operators can appoint accomplices, and the admin seat carries every identity mutation except role granting.

Taking the role away is NOT here and stays one act on purpose — containing a rogue operator must never be the slower path.

post/concierge.v1.GovernanceService/OpenAdminAdmission

Request

  • The document declares no server URL.
  • Auth: none required

Headers

Connect-Protocol-Version1 required

Define the version of the Connect protocol

Connect-Timeout-Msnumber

Define the timeout, in ms

Request body

user_idstring
reasonstring

Response

Success

idstring
kind'USER_PROPOSAL_KIND_UNSPECIFIED' | 'USER_PROPOSAL_KIND_SUSPENSION' | 'USER_PROPOSAL_KIND_REINSTATEMENT' | 'USER_PROPOSAL_KIND_ADMIN_ADMISSION'

What a UserProposal decides. Three kinds share one message because all three are the same question — "do the owners agree to change this person's standing?" — differing only in what the verdict writes.

state'USER_PROPOSAL_STATE_UNSPECIFIED' | 'USER_PROPOSAL_STATE_OPEN' | 'USER_PROPOSAL_STATE_EXECUTED' | 'USER_PROPOSAL_STATE_REJECTED' | 'USER_PROPOSAL_STATE_EXPIRED' | 'USER_PROPOSAL_STATE_CANCELLED' | 'USER_PROPOSAL_STATE_VOID'

The six states, again as their own enum: proto enum VALUES share one namespace per package, so the identical states have to be spelled three times even though the domain models them with one type.

subject_user_idstring

Any user — NOT necessarily an owner. That is the difference from OwnerAdmission, and the reason none of its roster checks have an analogue here.

subject_emailstring
initiator_user_idstring
initiator_emailstring
reasonstring

Why, in the initiator's words. Required, and shown to every voter.

owner_countinteger

Owners at open. The initiator is counted but does not vote.

thresholdinteger

How many of peers must vote FOR, frozen at open — so a surface shows the bar this proposal is actually measured against, not one re-derived from a roster that moved.

void_reasonstring

Changes

No recorded changes to this operation across all 1 revision of this API.