model

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2024 License: Apache-2.0 Imports: 2 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Access

type Access struct {
	UserID         string   `json:"userId"`
	AllowedActions []string `json:"allowedActions"`
}

type Authentication

type Authentication struct {
	HashedSecret     string `json:"hashedSecret"`
	HashingAlgorithm string `json:"hashingAlgorithm"` // md5, sha1 or sha256
}

type Collection

type Collection struct {
	Data       map[Identifier]*Record `json:"data"`
	Metadata   Metadata               `json:"metadata"`
	Schema     Schema                 `json:"schema"`
	PrimaryKey *Identifier            `json:"primaryKey,omitempty"`
	sync.Mutex
}

type Configurations

type Configurations struct {
	Admin *Identifier `json:"admin"`
}

type DataMap

type DataMap map[string]interface{}

type Database

type Database struct {
	Collections map[Identifier]*Collection `json:"collections"`
	Metadata    Metadata                   `json:"metadata"`
	Access      map[Identifier]*Access     `json:"access,omitempty"`
	sync.Mutex
}

type Entities

type Entities struct {
	Users       *string `json:"users,omitempty"`
	Databases   *string `json:"databases,omitempty"`
	Collections *string `json:"collections,omitempty"`
}

type ExtraFields

type ExtraFields map[string]interface{}

type Grants

type Grants struct {
	UserPrivileges       *Privileges `json:"userPrivileges,omitempty"`
	GlobalPrivileges     *Privileges `json:"globalPrivileges,omitempty"`
	DatabasePrivileges   *Privileges `json:"databasePrivileges,omitempty"`
	CollectionPrivileges *Privileges `json:"collectionPrivileges,omitempty"`
}

type Identifier

type Identifier string

func (Identifier) String

func (i Identifier) String() string

type Metadata

type Metadata map[string]interface{}

type Namespace

type Namespace struct {
	Databases []Identifier           `json:"databases"`
	Metadata  Metadata               `json:"metadata"`
	Access    map[Identifier]*Access `json:"access,omitempty"`
}

type Permissions

type Permissions struct {
	Role Identifier `json:"role" validate:"required"`
	On   *Entities  `json:"on,omitempty"`
}

type Privileges

type Privileges map[string]bool

type Record added in v1.3.4

type Record struct {
	Data       interface{} `json:"data"`
	Metadata   Metadata    `json:"metadata"`
	Identifier Identifier  `json:"id"`       // primary key of data/record
	RecordId   Identifier  `json:"recordId"` // unique record id
}

func (Record) DataMap added in v1.3.4

func (d Record) DataMap() map[string]interface{}

type Role

type Role struct {
	RoleID Identifier `json:"roleId"`
	Grants Grants     `json:"grants"`
	Hidden bool       `json:"hidden"`
}

type Schema

type Schema map[string]interface{}

type User

type User struct {
	UserID         Identifier     `json:"userId"`
	Authentication Authentication `json:"authentication"`
	Metadata       Metadata       `json:"metadata"`
	Permissions    []Permissions  `json:"permissions"`
}

type WDB

type WDB struct {
	Configurations Configurations            `json:"configurations"`
	Namespaces     map[Identifier]*Namespace `json:"namespaces"`
	Databases      map[Identifier]*Database  `json:"databases"`
	Users          map[Identifier]*User      `json:"users"`
	Roles          map[Identifier]*Role      `json:"roles"`
}

func NewWDBInstance

func NewWDBInstance(namespaces map[Identifier]*Namespace, databases map[Identifier]*Database, users map[Identifier]*User, roles map[Identifier]*Role) WDB

Jump to

Keyboard shortcuts

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