Documentation
¶
Index ¶
- func HashToken(token string) string
- type BlobInfo
- type BootstrapTeamRequest
- type Client
- func (c *Client) AddTeamMember(teamID, username, fingerprint, publicKey, transportPublicKey, ... string) error
- func (c *Client) BootstrapTeam(teamID string, req BootstrapTeamRequest) error
- func (c *Client) ConsumeInvite(tokenHash, joinerLabel string) (*InviteResponse, error)
- func (c *Client) CreateInvite(req InviteRequest) error
- func (c *Client) DeleteBlob(teamID, blobID string) error
- func (c *Client) DownloadBlob(teamID, blobID string) ([]byte, string, string, string, error)
- func (c *Client) GetInvite(tokenHash string) (*InviteResponse, error)
- func (c *Client) GetLimitsStatus(teamID string) (*LimitsStatus, error)
- func (c *Client) GetTeamMetrics(teamID string) (*TeamMetrics, error)
- func (c *Client) GetTierStatus(teamID string) (*LimitsStatus, error)
- func (c *Client) Health() (map[string]interface{}, error)
- func (c *Client) JoinInvite(tokenHash string, req JoinInviteRequest) (*JoinInviteResponse, error)
- func (c *Client) ListPending(teamID string) ([]BlobInfo, error)
- func (c *Client) ListRejectedBlobs(teamID string) ([]RejectedBlobInfo, error)
- func (c *Client) ListTeamAudit(teamID string, limit int) ([]TeamAuditEvent, error)
- func (c *Client) ListTeamInvites(teamID string) ([]TeamInvite, error)
- func (c *Client) ListTeamMembers(teamID string) ([]TeamMember, error)
- func (c *Client) RejectBlob(teamID, blobID, reason string) error
- func (c *Client) RemoveTeamMemberByFingerprint(teamID, fingerprint string) error
- func (c *Client) RevokeInvite(teamID, tokenHash, reason string) error
- func (c *Client) RotateSelf(teamID string, req RotateSelfRequest) error
- func (c *Client) TransferOwnership(teamID, fingerprint string) error
- func (c *Client) UploadBlob(teamID, blobID string, data []byte, ...) error
- func (c *Client) UpsertTeamMember(teamID string, req UpsertTeamMemberRequest) error
- type InviteRequest
- type InviteResponse
- type JoinInviteRequest
- type JoinInviteResponse
- type LimitsStatus
- type RejectedBlobInfo
- type RelayLimits
- type RelayUsage
- type RotateSelfRequest
- type TeamAuditEvent
- type TeamInvite
- type TeamMember
- type TeamMetrics
- type TierLimits
- type TierStatus
- type TierUsage
- type UpsertTeamMemberRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BlobInfo ¶
type BlobInfo struct {
BlobID string `json:"blob_id"`
TeamID string `json:"team_id"`
SenderFingerprint string `json:"sender_fingerprint"`
EphemeralPublicKey string `json:"ephemeral_public_key"`
Size int `json:"size"`
UploadedAt int64 `json:"uploaded_at"`
Filename string `json:"filename"`
}
BlobInfo describes a pending blob.
type BootstrapTeamRequest ¶
type BootstrapTeamRequest struct {
Username string `json:"username"`
Fingerprint string `json:"fingerprint"`
PublicKey string `json:"public_key"`
TransportPublicKey string `json:"transport_public_key"`
TransportFingerprint string `json:"transport_fingerprint"`
TeamName string `json:"team_name,omitempty"`
BootstrapNonce string `json:"bootstrap_nonce"`
ContractHash string `json:"contract_hash,omitempty"`
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an HTTP client for the DevContract relay API.
func (*Client) AddTeamMember ¶
func (c *Client) AddTeamMember(teamID, username, fingerprint, publicKey, transportPublicKey, transportFingerprint, role string) error
AddTeamMember adds or updates a member on the relay.
func (*Client) BootstrapTeam ¶
func (c *Client) BootstrapTeam(teamID string, req BootstrapTeamRequest) error
BootstrapTeam creates the initial relay-side project record with an explicit founder.
func (*Client) ConsumeInvite ¶
func (c *Client) ConsumeInvite(tokenHash, joinerLabel string) (*InviteResponse, error)
ConsumeInvite consumes (redeems) an invite.
func (*Client) CreateInvite ¶
func (c *Client) CreateInvite(req InviteRequest) error
CreateInvite creates a new invite on the relay.
func (*Client) DeleteBlob ¶
DeleteBlob removes a blob after download.
func (*Client) DownloadBlob ¶
DownloadBlob downloads an encrypted blob from the relay.
func (*Client) GetInvite ¶
func (c *Client) GetInvite(tokenHash string) (*InviteResponse, error)
GetInvite retrieves an invite by token hash.
func (*Client) GetLimitsStatus ¶
func (c *Client) GetLimitsStatus(teamID string) (*LimitsStatus, error)
GetLimitsStatus retrieves the current relay limits and usage for a team.
func (*Client) GetTeamMetrics ¶
func (c *Client) GetTeamMetrics(teamID string) (*TeamMetrics, error)
GetTeamMetrics returns operator-facing relay metrics for a project team.
func (*Client) GetTierStatus ¶
func (c *Client) GetTierStatus(teamID string) (*LimitsStatus, error)
GetTierStatus is retained as a compatibility alias for older callers.
func (*Client) JoinInvite ¶
func (c *Client) JoinInvite(tokenHash string, req JoinInviteRequest) (*JoinInviteResponse, error)
JoinInvite atomically redeems an invite and registers the authenticated member.
func (*Client) ListPending ¶
ListPending lists pending blobs for the current identity.
func (*Client) ListRejectedBlobs ¶
func (c *Client) ListRejectedBlobs(teamID string) ([]RejectedBlobInfo, error)
ListRejectedBlobs returns rejected/quarantined relay metadata for operators.
func (*Client) ListTeamAudit ¶
func (c *Client) ListTeamAudit(teamID string, limit int) ([]TeamAuditEvent, error)
ListTeamAudit returns relay-side administrative history for the current project.
func (*Client) ListTeamInvites ¶
func (c *Client) ListTeamInvites(teamID string) ([]TeamInvite, error)
ListTeamInvites returns relay-side invite lifecycle data for project administrators.
func (*Client) ListTeamMembers ¶
func (c *Client) ListTeamMembers(teamID string) ([]TeamMember, error)
ListTeamMembers returns the current relay-side project member list.
func (*Client) RejectBlob ¶
RejectBlob retires a malformed relay payload so it does not keep resurfacing.
func (*Client) RemoveTeamMemberByFingerprint ¶
RemoveTeamMemberByFingerprint removes a member from a team using the stable identity fingerprint.
func (*Client) RevokeInvite ¶
RevokeInvite retires a relay invite before it is consumed.
func (*Client) RotateSelf ¶
func (c *Client) RotateSelf(teamID string, req RotateSelfRequest) error
RotateSelf atomically swaps the authenticated member to a replacement identity.
func (*Client) TransferOwnership ¶
TransferOwnership promotes another human member and demotes the caller to member.
func (*Client) UploadBlob ¶
func (c *Client) UploadBlob(teamID, blobID string, data []byte, senderFP, recipientFP, ephemeralKey, filename, senderSig string) error
UploadBlob uploads an encrypted blob to the relay.
func (*Client) UpsertTeamMember ¶
func (c *Client) UpsertTeamMember(teamID string, req UpsertTeamMemberRequest) error
UpsertTeamMember adds or updates a principal on the relay.
type InviteRequest ¶
type InviteRequest struct {
TokenHash string `json:"token_hash"`
TeamID string `json:"team_id"`
Inviter string `json:"inviter"`
InviterFingerprint string `json:"inviter_fingerprint"`
Invitee string `json:"invitee"`
}
InviteRequest is the request body for creating an invite.
type InviteResponse ¶
type InviteResponse struct {
TeamID string `json:"team_id"`
Inviter string `json:"inviter"`
InviterFingerprint string `json:"inviter_fingerprint"`
ExpiresAt int64 `json:"expires_at"`
}
InviteResponse is the response from the invite endpoint.
type JoinInviteRequest ¶
type JoinInviteResponse ¶
type JoinInviteResponse struct {
TeamID string `json:"team_id"`
Inviter string `json:"inviter"`
InviterFingerprint string `json:"inviter_fingerprint"`
JoinerFingerprint string `json:"joiner_fingerprint"`
Members []TeamMember `json:"members"`
}
type LimitsStatus ¶
type LimitsStatus struct {
TeamID string `json:"team_id"`
Tier string `json:"tier"`
StripeSubscription string `json:"stripe_subscription"`
Usage RelayUsage `json:"usage"`
Limits RelayLimits `json:"limits"`
}
LimitsStatus describes the relay policy and current usage for a team.
type RejectedBlobInfo ¶
type RejectedBlobInfo struct {
BlobID string `json:"blob_id"`
TeamID string `json:"team_id"`
SenderFingerprint string `json:"sender_fingerprint"`
RecipientFingerprint string `json:"recipient_fingerprint"`
Status string `json:"status"`
FailureReason string `json:"failure_reason,omitempty"`
RejectedAt int64 `json:"rejected_at,omitempty"`
Filename string `json:"filename"`
}
type RelayLimits ¶
type RelayLimits struct {
Members int `json:"members"` // -1 = unlimited
BlobsPerDay int `json:"blobs_per_day"` // -1 = unlimited
HistoryDays int `json:"history_days"`
}
RelayLimits describes the deployment-configured relay limits.
type RelayUsage ¶
RelayUsage tracks current relay-side usage.
type RotateSelfRequest ¶
type TeamAuditEvent ¶
type TeamAuditEvent struct {
ID string `json:"id"`
TeamID string `json:"team_id"`
Action string `json:"action"`
ActorFingerprint string `json:"actor_fingerprint,omitempty"`
ActorPrincipalType string `json:"actor_principal_type,omitempty"`
ActorScopes []string `json:"actor_scopes,omitempty"`
TargetFingerprint string `json:"target_fingerprint,omitempty"`
InviteHash string `json:"invite_hash,omitempty"`
BlobID string `json:"blob_id,omitempty"`
Result string `json:"result"`
Details string `json:"details,omitempty"`
CreatedAt int64 `json:"created_at"`
}
type TeamInvite ¶
type TeamInvite struct {
TokenHash string `json:"token_hash"`
TeamID string `json:"team_id"`
Inviter string `json:"inviter"`
InviterFingerprint string `json:"inviter_fingerprint"`
Invitee string `json:"invitee"`
CreatedAt int64 `json:"created_at"`
ExpiresAt int64 `json:"expires_at"`
Consumed bool `json:"consumed"`
ConsumedAt int64 `json:"consumed_at,omitempty"`
ConsumedByFingerprint string `json:"consumed_by_fingerprint,omitempty"`
RevokedAt int64 `json:"revoked_at,omitempty"`
RevokedByFingerprint string `json:"revoked_by_fingerprint,omitempty"`
RevokeReason string `json:"revoke_reason,omitempty"`
Status string `json:"status,omitempty"`
}
type TeamMember ¶
type TeamMember struct {
Username string `json:"username"`
Fingerprint string `json:"fingerprint"`
PublicKey string `json:"public_key"`
TransportPublicKey string `json:"transport_public_key"`
TransportFingerprint string `json:"transport_fingerprint"`
Role string `json:"role"`
PrincipalType string `json:"principal_type,omitempty"`
Scopes []string `json:"scopes,omitempty"`
AddedAt int64 `json:"added_at"`
}
TeamMember represents a registered project member on the relay.
type TeamMetrics ¶
type TeamMetrics struct {
TeamID string `json:"team_id"`
MemberCount int `json:"member_count"`
PendingCount int `json:"pending_count"`
PendingByRecipient map[string]int `json:"pending_by_recipient"`
UploadsToday int `json:"uploads_today"`
EventTotals map[string]int `json:"event_totals"`
EventsToday map[string]int `json:"events_today"`
RecordedAt string `json:"recorded_at"`
}
type TierLimits ¶
type TierLimits = RelayLimits
TierLimits is retained as a compatibility alias for older callers.
type TierStatus ¶
type TierStatus = LimitsStatus
TierStatus is retained as a compatibility alias for older callers.
type TierUsage ¶
type TierUsage = RelayUsage
TierUsage is retained as a compatibility alias for older callers.
type UpsertTeamMemberRequest ¶
type UpsertTeamMemberRequest struct {
Username string `json:"username"`
Fingerprint string `json:"fingerprint"`
PublicKey string `json:"public_key"`
TransportPublicKey string `json:"transport_public_key"`
TransportFingerprint string `json:"transport_fingerprint"`
Role string `json:"role,omitempty"`
PrincipalType string `json:"principal_type,omitempty"`
Scopes []string `json:"scopes,omitempty"`
}