postgres

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxPageSize = 100
	MinPageSize = 10
)
View Source
const EmptyPrivilegeSet = PrivilegeSet(0)

Variables

This section is empty.

Functions

This section is empty.

Types

type ACL

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

func NewACL

func NewACL(acl string) (*ACL, error)

func NewACLFromPrivilegeSets

func NewACLFromPrivilegeSets(privs PrivilegeSet, privsWithGrant PrivilegeSet) *ACL

func (*ACL) Check

func (a *ACL) Check(p PrivilegeSet) (bool, bool)

func (*ACL) GrantPrivileges

func (a *ACL) GrantPrivileges() PrivilegeSet

func (*ACL) Grantee

func (a *ACL) Grantee() string

func (*ACL) Privileges

func (a *ACL) Privileges() PrivilegeSet

func (*ACL) String

func (a *ACL) String() string

type ACLResource

type ACLResource interface {
	GetOwnerID() int64
	GetACLs() []string
	AllPrivileges() PrivilegeSet
	DefaultPrivileges() PrivilegeSet
}

type Client

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

func New

func New(ctx context.Context, dsn string, opts ...ClientOpt) (*Client, error)

func (*Client) GetColumn

func (c *Client) GetColumn(ctx context.Context, tableID int64, columnID int64) (*ColumnModel, error)

func (*Client) GetDatabase

func (c *Client) GetDatabase(ctx context.Context, dbID int64) (*DatabaseModel, error)

func (*Client) GetFunction

func (c *Client) GetFunction(ctx context.Context, functionID int64) (*FunctionModel, error)

func (*Client) GetLargeObject

func (c *Client) GetLargeObject(ctx context.Context, largeObjectID int64) (*LargeObjectModel, error)

func (*Client) GetProcedure

func (c *Client) GetProcedure(ctx context.Context, functionID int64) (*ProcedureModel, error)

func (*Client) GetRole

func (c *Client) GetRole(ctx context.Context, roleID int64) (*RoleModel, error)

func (*Client) GetRoleByName

func (c *Client) GetRoleByName(ctx context.Context, roleID string) (*RoleModel, error)

func (*Client) GetSchema

func (c *Client) GetSchema(ctx context.Context, schemaID int64) (*SchemaModel, error)

func (*Client) GetSequence

func (c *Client) GetSequence(ctx context.Context, sequenceID int64) (*SequenceModel, error)

func (*Client) GetTable

func (c *Client) GetTable(ctx context.Context, tableID int64) (*TableModel, error)

func (*Client) GetView

func (c *Client) GetView(ctx context.Context, viewID int64) (*ViewModel, error)

func (*Client) ListColumns

func (c *Client) ListColumns(ctx context.Context, tableID int64, pager *Pager) ([]*ColumnModel, string, error)

func (*Client) ListDatabases

func (c *Client) ListDatabases(ctx context.Context, pager *Pager) ([]*DatabaseModel, string, error)

func (*Client) ListFunctions

func (c *Client) ListFunctions(ctx context.Context, schemaID int64, pager *Pager) ([]*FunctionModel, string, error)

func (*Client) ListLargeObjects

func (c *Client) ListLargeObjects(ctx context.Context, pager *Pager) ([]*LargeObjectModel, string, error)

func (*Client) ListProcedures

func (c *Client) ListProcedures(ctx context.Context, schemaID int64, pager *Pager) ([]*ProcedureModel, string, error)

func (*Client) ListRoleMembers

func (c *Client) ListRoleMembers(ctx context.Context, roleID int64, pager *Pager) ([]*RoleModel, string, error)

func (*Client) ListRoles

func (c *Client) ListRoles(ctx context.Context, pager *Pager) ([]*RoleModel, string, error)

func (*Client) ListSchemas

func (c *Client) ListSchemas(ctx context.Context, pager *Pager) ([]*SchemaModel, string, error)

func (*Client) ListSequences

func (c *Client) ListSequences(ctx context.Context, schemaID int64, pager *Pager) ([]*SequenceModel, string, error)

func (*Client) ListTables

func (c *Client) ListTables(ctx context.Context, schemaID int64, pager *Pager) ([]*TableModel, string, error)

func (*Client) ListViews

func (c *Client) ListViews(ctx context.Context, schemaID int64, pager *Pager) ([]*ViewModel, string, error)

func (*Client) RoleHasMembers

func (c *Client) RoleHasMembers(ctx context.Context, roleID int64) (bool, error)

func (*Client) ValidateConnection

func (c *Client) ValidateConnection(ctx context.Context) error

type ClientOpt

type ClientOpt func(c *Client)

func WithSchemaFilter

func WithSchemaFilter(filter []string) ClientOpt

type ColumnModel

type ColumnModel struct {
	ID        int64    `db:"attnum"`
	Name      string   `db:"attname"`
	TableName string   `db:"tablename"`
	OwnerID   int64    `db:"relowner"`
	ACLs      []string `db:"attacl"`
}

func (*ColumnModel) AllPrivileges

func (t *ColumnModel) AllPrivileges() PrivilegeSet

func (*ColumnModel) DefaultPrivileges

func (t *ColumnModel) DefaultPrivileges() PrivilegeSet

func (*ColumnModel) GetACLs

func (t *ColumnModel) GetACLs() []string

func (*ColumnModel) GetOwnerID

func (t *ColumnModel) GetOwnerID() int64

type DatabaseModel

type DatabaseModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"datname"`
	OwnerID int64    `db:"datdba"`
	ACLs    []string `db:"datacl"`
}

func (*DatabaseModel) AllPrivileges

func (t *DatabaseModel) AllPrivileges() PrivilegeSet

func (*DatabaseModel) DefaultPrivileges

func (t *DatabaseModel) DefaultPrivileges() PrivilegeSet

func (*DatabaseModel) GetACLs

func (t *DatabaseModel) GetACLs() []string

func (*DatabaseModel) GetOwnerID

func (t *DatabaseModel) GetOwnerID() int64

type FunctionModel

type FunctionModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"proname"`
	Schema  string   `db:"nspname"`
	OwnerID int64    `db:"proowner"`
	ACLs    []string `db:"proacl"`
}

func (*FunctionModel) AllPrivileges

func (t *FunctionModel) AllPrivileges() PrivilegeSet

func (*FunctionModel) DefaultPrivileges

func (t *FunctionModel) DefaultPrivileges() PrivilegeSet

func (*FunctionModel) GetACLs

func (t *FunctionModel) GetACLs() []string

func (*FunctionModel) GetOwnerID

func (t *FunctionModel) GetOwnerID() int64

type LargeObjectModel

type LargeObjectModel struct {
	ID      int64    `db:"oid"`
	OwnerID int64    `db:"lomowner"`
	ACLs    []string `db:"lomacl"`
}

func (*LargeObjectModel) AllPrivileges

func (t *LargeObjectModel) AllPrivileges() PrivilegeSet

func (*LargeObjectModel) DefaultPrivileges

func (t *LargeObjectModel) DefaultPrivileges() PrivilegeSet

func (*LargeObjectModel) GetACLs

func (t *LargeObjectModel) GetACLs() []string

func (*LargeObjectModel) GetOwnerID

func (t *LargeObjectModel) GetOwnerID() int64

type Pager

type Pager struct {
	Token string
	Size  int
}

func (*Pager) Parse

func (p *Pager) Parse() (int, int, error)

Parse returns the offset and page size.

type PrivilegeSet

type PrivilegeSet uint64
const (
	Insert PrivilegeSet = 1 << iota
	Select
	Update
	Delete
	Truncate
	References
	Trigger
	Execute
	Usage
	Create
	Temporary
	Connect
	Set
	AlterSystem
	Terminator
)

func PrivilegeSetFromRune

func PrivilegeSetFromRune(s rune) PrivilegeSet

func (PrivilegeSet) Has

func (ps PrivilegeSet) Has(priv PrivilegeSet) bool

func (PrivilegeSet) Name

func (ps PrivilegeSet) Name() string

func (PrivilegeSet) Range

func (a PrivilegeSet) Range(f func(p PrivilegeSet) (bool, error)) error

func (PrivilegeSet) Set

func (ps PrivilegeSet) Set(priv PrivilegeSet) PrivilegeSet

func (PrivilegeSet) String

func (ps PrivilegeSet) String() string

type ProcedureModel

type ProcedureModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"proname"`
	Schema  string   `db:"nspname"`
	OwnerID int64    `db:"proowner"`
	ACLs    []string `db:"proacl"`
}

func (*ProcedureModel) AllPrivileges

func (t *ProcedureModel) AllPrivileges() PrivilegeSet

func (*ProcedureModel) DefaultPrivileges

func (t *ProcedureModel) DefaultPrivileges() PrivilegeSet

func (*ProcedureModel) GetACLs

func (t *ProcedureModel) GetACLs() []string

func (*ProcedureModel) GetOwnerID

func (t *ProcedureModel) GetOwnerID() int64

type RoleModel

type RoleModel struct {
	ID                int64   `db:"oid"`
	Name              string  `db:"rolname"`
	Superuser         bool    `db:"rolsuper"`
	Inherit           bool    `db:"rolinherit"`
	CreateRole        bool    `db:"rolcreaterole"`
	CreateDb          bool    `db:"rolcreatedb"`
	CanLogin          bool    `db:"rolcanlogin"`
	Replication       bool    `db:"rolreplication"`
	ConnectionLimit   int     `db:"rolconnlimit"`
	BypassRowSecurity bool    `db:"rolbypassrls"`
	RoleAdmin         *bool   `db:"admin_option"`
	MemberOf          []int64 `db:"member_of"`
}

func (*RoleModel) IsRoleAdmin

func (r *RoleModel) IsRoleAdmin() bool

type SchemaModel

type SchemaModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"nspname"`
	OwnerID int64    `db:"nspowner"`
	ACLs    []string `db:"nspacl"`
}

func (*SchemaModel) AllPrivileges

func (t *SchemaModel) AllPrivileges() PrivilegeSet

func (*SchemaModel) DefaultPrivileges

func (t *SchemaModel) DefaultPrivileges() PrivilegeSet

func (*SchemaModel) GetACLs

func (t *SchemaModel) GetACLs() []string

func (*SchemaModel) GetOwnerID

func (t *SchemaModel) GetOwnerID() int64

type SequenceModel

type SequenceModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"relname"`
	Schema  string   `db:"nspname"`
	OwnerID int64    `db:"relowner"`
	ACLs    []string `db:"relacl"`
}

func (*SequenceModel) AllPrivileges

func (t *SequenceModel) AllPrivileges() PrivilegeSet

func (*SequenceModel) DefaultPrivileges

func (t *SequenceModel) DefaultPrivileges() PrivilegeSet

func (*SequenceModel) GetACLs

func (t *SequenceModel) GetACLs() []string

func (*SequenceModel) GetOwnerID

func (t *SequenceModel) GetOwnerID() int64

type TableModel

type TableModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"relname"`
	Schema  string   `db:"nspname"`
	OwnerID int64    `db:"relowner"`
	ACLs    []string `db:"relacl"`
}

func (*TableModel) AllPrivileges

func (t *TableModel) AllPrivileges() PrivilegeSet

func (*TableModel) DefaultPrivileges

func (t *TableModel) DefaultPrivileges() PrivilegeSet

func (*TableModel) GetACLs

func (t *TableModel) GetACLs() []string

func (*TableModel) GetOwnerID

func (t *TableModel) GetOwnerID() int64

type ViewModel

type ViewModel struct {
	ID      int64    `db:"oid"`
	Name    string   `db:"relname"`
	Schema  string   `db:"nspname"`
	OwnerID int64    `db:"relowner"`
	ACLs    []string `db:"relacl"`
}

func (*ViewModel) AllPrivileges

func (t *ViewModel) AllPrivileges() PrivilegeSet

func (*ViewModel) DefaultPrivileges

func (t *ViewModel) DefaultPrivileges() PrivilegeSet

func (*ViewModel) GetACLs

func (t *ViewModel) GetACLs() []string

func (*ViewModel) GetOwnerID

func (t *ViewModel) GetOwnerID() int64

Jump to

Keyboard shortcuts

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