Documentation ¶
Overview ¶
Package server provides the Yorkie server which is the main entry point of the Yorkie system. The server is responsible for starting the RPC server and admin server.
Index ¶
Constants ¶
const ( DefaultRPCPort = 11101 DefaultRPCMaxRequestsBytes = 4 * 1024 * 1024 // 4MiB DefaultRPCMaxConnectionAge = 0 * time.Second DefaultRPCMaxConnectionAgeGrace = 0 * time.Second DefaultProfilingPort = 11102 DefaultAdminPort = 11103 DefaultHousekeepingInterval = 30 * time.Second DefaultHousekeepingCandidatesLimitPerProject = 500 DefaultMongoConnectionURI = "mongodb://localhost:27017" DefaultMongoConnectionTimeout = 5 * time.Second DefaultMongoPingTimeout = 5 * time.Second DefaultMongoYorkieDatabase = "yorkie-meta" DefaultAdminUser = "admin" DefaultAdminPassword = "admin" DefaultSecretKey = "yorkie-secret" DefaultAdminTokenDuration = 7 * 24 * time.Hour DefaultUseDefaultProject = true DefaultClientDeactivateThreshold = "24h" DefaultSnapshotThreshold = 500 DefaultSnapshotInterval = 1000 DefaultSnapshotWithPurgingChanges = false DefaultAuthWebhookMaxRetries = 10 DefaultAuthWebhookMaxWaitInterval = 3000 * time.Millisecond DefaultAuthWebhookCacheSize = 5000 DefaultAuthWebhookCacheAuthTTL = 10 * time.Second DefaultAuthWebhookCacheUnauthTTL = 10 * time.Second DefaultHostname = "" )
Below are the values of the default values of Yorkie config.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { RPC *rpc.Config `yaml:"RPC"` Profiling *profiling.Config `yaml:"Profiling"` Admin *admin.Config `yaml:"Admin"` Housekeeping *housekeeping.Config `yaml:"Housekeeping"` Backend *backend.Config `yaml:"Backend"` Mongo *mongo.Config `yaml:"Mongo"` }
Config is the configuration for creating a Yorkie instance.
func NewConfig ¶
func NewConfig() *Config
NewConfig returns a Config struct that contains reasonable defaults for most of the configurations.
func NewConfigFromFile ¶
NewConfigFromFile returns a Config struct for the given conf file.
type Yorkie ¶
type Yorkie struct {
// contains filtered or unexported fields
}
Yorkie is a server of Yorkie. The server receives changes from the client, stores them in the repository, and propagates the changes to clients who subscribe to the document.
func (*Yorkie) Members ¶
func (r *Yorkie) Members() map[string]*sync.ServerInfo
Members returns the members of this cluster.
func (*Yorkie) ShutdownCh ¶
func (r *Yorkie) ShutdownCh() <-chan struct{}
ShutdownCh returns the shutdown channel.
Directories ¶
Path | Synopsis |
---|---|
Package admin provides the admin server.
|
Package admin provides the admin server. |
auth
Package auth provides the authentication and authorization of the admin server.
|
Package auth provides the authentication and authorization of the admin server. |
interceptors
Package interceptors provides interceptors for Admin server.
|
Package interceptors provides interceptors for Admin server. |
Package backend provides the backend implementation of the Yorkie.
|
Package backend provides the backend implementation of the Yorkie. |
background
Package background provides the background service.
|
Package background provides the background service. |
database
Package database provides the database interface for the Yorkie backend.
|
Package database provides the database interface for the Yorkie backend. |
database/memory
Package memory implements the database interface using in-memory database.
|
Package memory implements the database interface using in-memory database. |
database/mongo
Package mongo implements database interfaces using MongoDB.
|
Package mongo implements database interfaces using MongoDB. |
housekeeping
Package housekeeping provides the housekeeping service.
|
Package housekeeping provides the housekeeping service. |
sync
Package sync provides the synchronization primitives for the server.
|
Package sync provides the synchronization primitives for the server. |
sync/memory
Package memory provides the memory implementation of the sync package.
|
Package memory provides the memory implementation of the sync package. |
Package clients provides the client related business logic.
|
Package clients provides the client related business logic. |
Package documents provides the document related business logic.
|
Package documents provides the document related business logic. |
Package grpchelper provides helper functions for gRPC.
|
Package grpchelper provides helper functions for gRPC. |
Package logging provides logging facilities for Yorkie Server.
|
Package logging provides logging facilities for Yorkie Server. |
Package packs implements PushPullPack which is used to sync the document between the client and the server.
|
Package packs implements PushPullPack which is used to sync the document between the client and the server. |
Package profiling provides profiling server.
|
Package profiling provides profiling server. |
prometheus
Package prometheus provides a Prometheus metrics exporter.
|
Package prometheus provides a Prometheus metrics exporter. |
Package projects provides the project related business logic.
|
Package projects provides the project related business logic. |
Package rpc provides the rpc server which is responsible for handling requests from the client.
|
Package rpc provides the rpc server which is responsible for handling requests from the client. |
auth
Package auth provides authentication and authorization for RPCs.
|
Package auth provides authentication and authorization for RPCs. |
interceptors
Package interceptors provides the interceptors for RPC.
|
Package interceptors provides the interceptors for RPC. |
metadata
Package metadata provides metadata for RPC.
|
Package metadata provides metadata for RPC. |
Package users provides the user related business logic.
|
Package users provides the user related business logic. |