Documentation
¶
Overview ¶
Package inmem is an in-memory adminauth.Store for tests and for the reference server's development mode.
Why ¶
Every adminauth backend runs the same contract suite, and the in-memory one is what the unit tests use so they need no database. It is also what the reference server falls back to when it is configured with in-memory storage, where principals and policies live only as long as the process.
Nothing here is sealed at rest: process memory is inside the trust boundary, and the store holds token digests rather than tokens, so there is no plaintext credential to protect. The same reasoning kept storage/inmem unencrypted in record 0013.
References ¶
- Decision record: docs/research/decisions/0034-admin-api-and-authorization.md
- Plan of record: docs/research/implementation_plan.md (phase 8)
- Contract suite: adminauth/adminauthtest
Index ¶
- type Store
- func (s *Store) CountRoot(_ context.Context) (int, error)
- func (s *Store) CreatePrincipal(_ context.Context, p adminauth.Principal, digest string, now time.Time) (adminauth.Principal, error)
- func (s *Store) DeletePolicy(_ context.Context, name string) error
- func (s *Store) DeletePrincipal(_ context.Context, name string) error
- func (s *Store) GetPolicy(_ context.Context, name string) (adminauth.Policy, error)
- func (s *Store) Policies(_ context.Context) ([]adminauth.Policy, error)
- func (s *Store) PolicyVersion(_ context.Context) (int64, error)
- func (s *Store) Principal(_ context.Context, name string) (adminauth.Principal, error)
- func (s *Store) PrincipalByDigest(_ context.Context, digest string) (adminauth.Principal, error)
- func (s *Store) Principals(_ context.Context, p adminauth.Page) (adminauth.Result[adminauth.Principal], error)
- func (s *Store) PutPolicy(_ context.Context, p adminauth.Policy, now time.Time) (adminauth.Policy, error)
- func (s *Store) RevokeToken(_ context.Context, name string, now time.Time) error
- func (s *Store) SetToken(_ context.Context, name, digest, tokenID string, expires, now time.Time) (adminauth.Principal, error)
- func (s *Store) UpdatePrincipal(_ context.Context, name string, roles []string, root bool, now time.Time) (adminauth.Principal, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store keeps principals and policies in memory. It is safe for concurrent use.
func (*Store) CreatePrincipal ¶
func (s *Store) CreatePrincipal(_ context.Context, p adminauth.Principal, digest string, now time.Time) (adminauth.Principal, error)
CreatePrincipal implements adminauth.Store.
func (*Store) DeletePolicy ¶
DeletePolicy implements adminauth.Store.
func (*Store) DeletePrincipal ¶
DeletePrincipal implements adminauth.Store.
func (*Store) PolicyVersion ¶
PolicyVersion implements adminauth.Store.
func (*Store) PrincipalByDigest ¶
PrincipalByDigest implements adminauth.Store.
func (*Store) Principals ¶
func (s *Store) Principals(_ context.Context, p adminauth.Page) (adminauth.Result[adminauth.Principal], error)
Principals implements adminauth.Store, paging by name.
func (*Store) PutPolicy ¶
func (s *Store) PutPolicy(_ context.Context, p adminauth.Policy, now time.Time) (adminauth.Policy, error)
PutPolicy implements adminauth.Store.
func (*Store) RevokeToken ¶
RevokeToken implements adminauth.Store.