registry

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2016 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package registry provides access to the Arigato registry REST API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClaimTree

type ClaimTree struct {
	Org        *envelope.Signed   `json:"org"`
	PublicKeys []PublicKeySegment `json:"public_keys"`
}

ClaimTree represents an organizations claim tree which contains public signing and encryption keys for every member.

type ClaimTreeClient

type ClaimTreeClient struct {
	// contains filtered or unexported fields
}

ClaimTreeClient represents the `/claimtree` registry endpoint, used for retrieving the public keys and their associated claims for an organization.

func (*ClaimTreeClient) List

func (c *ClaimTreeClient) List(ctx context.Context, orgID *identity.ID,
	ownerID *identity.ID) ([]ClaimTree, error)

List returns a list of all claimtrees for a given orgID. If no orgID is provided then it returns all claimtrees for every organization the user belongs too.

If an ownerID is provided then only public keys and claims related to that user or machine will be returned.

type ClaimedKeyPair

type ClaimedKeyPair struct {
	PublicKey  *envelope.Signed  `json:"public_key"`
	PrivateKey *envelope.Signed  `json:"private_key"`
	Claims     []envelope.Signed `json:"claims"`
}

ClaimedKeyPair contains a public/private keypair, and all the Claims made against it (system and user signatures).

type Client

type Client struct {
	KeyPairs       *KeyPairs
	Tokens         *Tokens
	Users          *Users
	Teams          *TeamsClient
	Memberships    *MembershipsClient
	Credentials    *Credentials
	Orgs           *Orgs
	OrgInvite      *OrgInviteClient
	Keyring        *KeyringClient
	KeyringMember  *KeyringMemberClient
	ClaimTree      *ClaimTreeClient
	CredentialTree *CredentialTreeClient
	// contains filtered or unexported fields
}

Client exposes the registry REST API.

func NewClient

func NewClient(prefix string, apiVersion string, version string, sess session.Session, t *http.Transport) *Client

NewClient returns a new Client.

func (*Client) Do

func (c *Client) Do(ctx context.Context, r *http.Request, v interface{}) (*http.Response, error)

Do executes an http.Request, populating v with the JSON response on success.

If the request errors with a JSON formatted response body, it will be unmarshaled into the returned error.

func (*Client) NewRequest

func (c *Client) NewRequest(method, path string, query *url.Values,
	body interface{}) (*http.Request, error)

NewRequest constructs a new http.Request, with a body containing the json representation of body, if provided.

func (*Client) NewTokenRequest

func (c *Client) NewTokenRequest(token, method, path string, query *url.Values,
	body interface{}) (*http.Request, error)

NewTokenRequest constructs a new http.Request, with a body containing the json representation of body, if provided.

The request will be authorized with the provided token.

type CredentialTree

type CredentialTree struct {
	Keyring     *envelope.Signed  `json:"keyring"`
	Members     []envelope.Signed `json:"members"`
	Credentials []envelope.Signed `json:"credentials"`
}

CredentialTree represents a Keyring, it's members, and associated Credentials.

type CredentialTreeClient

type CredentialTreeClient struct {
	// contains filtered or unexported fields
}

CredentialTreeClient represents the `/credentialtree` registry endpoint, user for retrieving keyrings, keyring members, and credentials associated with claims.

func (*CredentialTreeClient) List

func (c *CredentialTreeClient) List(ctx context.Context, name, path,
	pathexp string, ownerID *identity.ID) ([]CredentialTree, error)

List returns back all segments of the CredentialGraph (Keyring, Keyring Members, and Credentials) that match the given name, path, or path expression.

func (*CredentialTreeClient) Post

Post creates a new CredentialTree on the registry.

The CredentialTree includes the keyring, it's members, and credentials.

type Credentials

type Credentials struct {
	// contains filtered or unexported fields
}

Credentials represents the `/credentials` registry endpoint, used for accessing encrypted credentials/secrets.

func (*Credentials) Create

func (c *Credentials) Create(ctx context.Context, credential *envelope.Signed) (*envelope.Signed, error)

Create creates the provided credential in the registry.

type Error added in v0.1.1

type Error struct {
	StatusCode int

	Type string   `json:"type"`
	Err  []string `json:"error"`
}

Error represents API errors from the registry service.

func (*Error) Error added in v0.1.1

func (e *Error) Error() string

Error implements the error interface for registry errors.

type KeyPairs

type KeyPairs struct {
	// contains filtered or unexported fields
}

KeyPairs represents the `/keypairs` registry endpoint, used for accessing users' signing and encryption keypairs.

func (*KeyPairs) List

func (k *KeyPairs) List(ctx context.Context, orgID *identity.ID) ([]ClaimedKeyPair, error)

List returns all KeyPairs for the logged in user in the given, or all orgs if orgID is nil.

func (*KeyPairs) Post

func (k *KeyPairs) Post(ctx context.Context, pubKey, privKey,
	claim *envelope.Signed) (*envelope.Signed, *envelope.Signed, []envelope.Signed, error)

Post creates a new keypair on the registry.

The keypair includes the user's public key, private key, and a self-signed claim on the public key.

keys may be either signing or encryption keys.

type KeyringClient

type KeyringClient struct {
	// contains filtered or unexported fields
}

KeyringClient represents the `/keyrings` registry end point for accessing keyrings the user or machine belong too.

func (*KeyringClient) List

func (k *KeyringClient) List(ctx context.Context, orgID *identity.ID,
	ownerID *identity.ID) ([]KeyringSection, error)

List retrieves an array of KeyringSections from the registry.

type KeyringMemberClient

type KeyringMemberClient struct {
	// contains filtered or unexported fields
}

KeyringMemberClient represents the `/keyring-members` registry end point for accessand creating memberships related to a set of Keyrings.

func (*KeyringMemberClient) Post

func (k *KeyringMemberClient) Post(ctx context.Context, members []envelope.Signed) ([]envelope.Signed, error)

Post sends a creation requests for a set of KeyringMember objects to the registry.

type KeyringSection

type KeyringSection struct {
	Keyring *envelope.Signed  `json:"keyring"`
	Members []envelope.Signed `json:"members"`
}

KeyringSection represents a section of the CredentialTree only pertaining to a keyring and it's membership.

type MembershipsClient

type MembershipsClient struct {
	// contains filtered or unexported fields
}

MembershipsClient represents the `/memberships` registry endpoint, used for accessing the relationship between users, organization, and teams.

func (*MembershipsClient) List

func (m *MembershipsClient) List(ctx context.Context, orgID *identity.ID,
	teamID *identity.ID, ownerID *identity.ID) ([]envelope.Unsigned, error)

List returns all memberships for a given organization, team, or user/machine

type OrgInviteClient

type OrgInviteClient struct {
	// contains filtered or unexported fields
}

OrgInviteClient represents the `/org-invites` registry endpoint, used for sending, accepting, and approving invitations to organizations in Arigato.

func (*OrgInviteClient) Approve

func (o *OrgInviteClient) Approve(ctx context.Context, inviteID *identity.ID) (*envelope.Unsigned, error)

Approve sends an approval notification to the registry regarding a specific invitation.

func (*OrgInviteClient) Get

func (o *OrgInviteClient) Get(ctx context.Context, inviteID *identity.ID) (*envelope.Unsigned, error)

Get returns a specific Org Invite based on it's ID

type Orgs

type Orgs struct {
	// contains filtered or unexported fields
}

Orgs represents the `/orgs` registry endpoint, used for accessing organizations stored in Arigato.

func (*Orgs) List

func (o *Orgs) List(ctx context.Context, name string) ([]envelope.Unsigned, error)

List returns all organizations that match the given name.

type PublicKeySegment

type PublicKeySegment struct {
	Key    *envelope.Signed  `json:"public_key"`
	Claims []envelope.Signed `json:"claims"`
}

PublicKeySegment represents a sub section of a claimtree targeting a specific public key and it's claims.

type TeamsClient

type TeamsClient struct {
	// contains filtered or unexported fields
}

TeamsClient represents the `/teams` registry endpoint, used for accessing teams stored in Arigato.

func (*TeamsClient) List

func (t *TeamsClient) List(ctx context.Context, orgID *identity.ID) ([]envelope.Unsigned, error)

List returns all teams for an organization

type Tokens

type Tokens struct {
	// contains filtered or unexported fields
}

Tokens represents the registry '/tokens' endpoints, used for session management.

Logging in is a two step process. We must first request a login token. This token is then HMAC'd and returned to the server, exchanging it for an auth token, which is used for all other operations.

func (*Tokens) Delete

func (t *Tokens) Delete(ctx context.Context, token string) error

Delete deletes the token with the provided value from the registry. This effectively logs a user out.

func (*Tokens) PostAuth

func (t *Tokens) PostAuth(ctx context.Context, token, hmac string) (string, error)

PostAuth requests an auth token from the registry for the provided login token value, and it's HMAC.

func (*Tokens) PostLogin

func (t *Tokens) PostLogin(ctx context.Context, email string) (string, string, error)

PostLogin requests a login token from the registry for the provided email address.

type Users

type Users struct {
	// contains filtered or unexported fields
}

Users represents the registry `/users` endpoints.

func (*Users) GetSelf

func (u *Users) GetSelf(ctx context.Context, token string) (*envelope.Unsigned, error)

GetSelf returns the logged in user.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL