v.io: v.io/x/ref Index | Files | Directories

package ref

import "v.io/x/ref"

Package ref defines constants used through the Vanadium reference implementation, which is implemented in its subdirectories.

Index

Package Files

envvar.go

Constants

const (
    // EnvCredentials is the name of the environment variable pointing to a
    // directory containing all the credentials of a principal (the blessing
    // store, the blessing roots, possibly the private key etc.).
    //
    // Typically only one of EnvCredentials or EnvAgentPath will be set in a
    // process. If both are set, then EnvCredentials takes preference.
    //
    // See v.io/x/ref/lib/security.CreatePersistentPrincipal.
    EnvCredentials = "V23_CREDENTIALS"

    // When set and non-empty, EnvCredentials is hosted on a read-only
    // filesystem.
    EnvCredentialsReadonlyFileSystem = "V23_CREDENTIALS_READONLY_FILESYSTEM"

    // EnvCredentialsNoLockDeprecated and V23_CREDENTIALS_NO_LOCK will
    // be removed in a subsequent release. This is essentially an alias
    // for V23_CREDENTIALS_READONLY_FILESYSTEM which should be used
    // instead.
    EnvCredentialsNoLockDeprecated = "V23_CREDENTIALS_NO_LOCK"

    // EnvCredentialsReloadInterval is the name of the environment variable
    // that specifies the interval between credentials reloads.
    EnvCredentialsReloadInterval = "V23_CREDENTIALS_RELOAD_INTERVAL"

    // EnvNamespacePrefix is the prefix of all environment variables that
    // define a namespace root.
    EnvNamespacePrefix = "V23_NAMESPACE"

    // EnvI18nCatalogueFiles is the name of the environment variable
    // pointing to a comma-separated list of i18n catalogue files to be
    // loaded at startup.
    EnvI18nCatalogueFiles = "V23_I18N_CATALOGUE"

    // EnvOAuthIdentityProvider is the name of the environment variable
    // pointing to the url of the OAuth identity provider used by the
    // principal seekblessings command.
    EnvOAuthIdentityProvider = "V23_OAUTH_IDENTITY_PROVIDER"

    // When EnvExpectGoogleComputeEngine is set and non-empty, the runtime
    // initialization will fail if the GCE metadata is inaccessible.
    // Deprecated: use V23_VIRTUALIZATION_PROVIDER instead.
    EnvExpectGoogleComputeEngine = "V23_EXPECT_GOOGLE_COMPUTE_ENGINE"

    // EnvVirtualizationProvider is the name of the environment variable
    // naming the virtualization/cloud provider that the process is
    // expected to be run under. It replaces EnvExpectGoogleComputeEngine.
    EnvVirtualizationProvider = "V23_VIRTUALIZATION_PROVIDER"

    // A comma-separated list of path names to export disk stats for.
    EnvSysStatsDiskPaths = "V23_SYS_STATS_DISK_PATHS"

    // When set and non-empty, the namespace client will not use caching.
    EnvDisableNamespaceCache = "V23_DISABLE_NS_CACHE"
)

func EnvClearCredentials Uses

func EnvClearCredentials() error

EnvClearCredentials unsets all environment variables that are used by the Runtime to initialize the principal.

func EnvNamespaceRoots Uses

func EnvNamespaceRoots() (map[string]string, []string)

EnvNamespaceRoots returns the set of namespace roots to be used by the process, as specified by environment variables.

It returns both a map of environment variable name to value and the list of values.

func ReadonlyCredentialsDir Uses

func ReadonlyCredentialsDir() (reason string, readonly bool)

ReadonlyCredentialsDir returns true if the credentials directory is to be treated as readonly, for example, because it exists on a read-only filesystem. Any attempt to write to this directory should result in an error. It also returns the reason that the directory is considered readonly, for now, the name of the environment variable that is used to indicate this.

Directories

PathSynopsis
cmd/gclogsCommand gclogs safely deletes old log files.
cmd/mounttableCommand mounttable sends commands to Vanadium mounttable services.
cmd/namespaceCommand namespace resolves and manages names in the Vanadium namespace.
cmd/principalCommand principal creates and manages Vanadium principals and blessings.
cmd/uniqueidCommand uniqueid generates unique identifiers.
cmd/vdlCommand vdl manages Vanadium Definition Language source code.
cmd/vomCommand vom helps debug the Vanadium Object Marshaling wire protocol.
cmd/vrpcCommand vrpc sends and receives Vanadium remote procedure calls.
cmd/vrpc/internalnolint:golint
examples/echonolint:golint
examples/echo/echoCommand echo is a client for the Echo service.
examples/echo/echodCommand echo is a server for the Echo service.
examples/fortunePackage fortune defines the Fortune example interface.
examples/fortune/fortuneCommand fortune is a client to the Fortune interface.
examples/fortune/fortunedCommand fortuned runs a daemon that implements the Fortune interface.
examples/fortune/fortuned/internal
examples/noflagsAn example using the 'library' factory which is configured via exported variables rather than by command line flags.
examples/rpsPackage rps defines interfaces for playing the game Rock-Paper-Scissors.
examples/rps/internalPackage internal defines common functions used by both rock paper scissors clients and servers.
examples/rps/rpsbotCommand rpsbot repeatedly runs automated games, implementing all three roles.
examples/rps/rpsplayerCommand rpsplayer implements the Player interface, which enables a human to play the game.
examples/rps/rpsscorekeeperCommand rpsscorekeeper implements the ScoreKeeper interface.
examples/tunnelPackage tunnel defines an interface for creating a network tunnel from client to server.
examples/tunnel/internalPackage internal defines common types and functions used by both tunnel clients and servers.
examples/tunnel/tunneldCommand tunneld runs the tunneld daemon, which implements the Tunnel interface.
examples/tunnel/vshCommand vsh runs the Vanadium shell, a Tunnel client that can be used to run shell commands or start an interactive shell on a remote tunneld server.
internal/loggerPackage logger provides access to an implementation of v23/logger.Logging for use within a runtime implementation.
internal/reflectutilPackage reflectutil provides reflection-based utilities.
lib/apilogPackage apilog provides functions to be used in conjunction with logcop.
lib/discoverynolint:golint
lib/discovery/factory
lib/discovery/globalTODO(jhahn): This is an experimental work to see its feasibility and set the long-term goal, and can be changed without notice.
lib/discovery/plugins/mdnsPackage mdns implements mDNS plugin for discovery service.
lib/discovery/plugins/mock
lib/discovery/plugins/testutil
lib/discovery/plugins/vinePackage vine contains a discovery plugin that is using Vine protocol.
lib/discovery/testpackage test contains tests that rely on a fake runtime.
lib/discovery/testutilPackage testutil defines helpers for discovery tests.
lib/dispatcher
lib/execPackage exec implements configuration and secret-sharing between parent and child processes via anoymous pipes.
lib/flagsPackage flags implements utilities to augment the standard Go flag package.
lib/flags/sitedefaults
lib/globPackage glob defines a globbing syntax and implements matching routines.
lib/mgmtPackage mgmt defines constants used by the management tools and daemons.
lib/publisherPackage publisher provides a type to publish names to a mounttable.
lib/pubsubPackage pubsub defines interfaces for accessing dynamically changing process configuration information.
lib/raftnolint:golint
lib/securityPackage security implements utilities for creating and using Vanadium security primitives.
lib/security/auditPackage audit implements a mechanism for writing auditable events to an audit log.
lib/security/bcrypternolint:golint
lib/security/internal
lib/security/internal/lockedfilePackage lockedfile creates and manipulates files whose contents should only change atomically.
lib/security/internal/lockedfile/filelockPackage filelock provides a platform-independent API for advisory file locking.
lib/security/internal/lockedfile/testenv
lib/security/passphrasePackage passphrase contains utilities for reading a passphrase.
lib/security/securityflagPackage securityflag implements utilities for creating security objects based on flags.
lib/security/serializationPackage serialization implements utilities for reading and writing data with signature-based integrity checking.
lib/security/signing
lib/security/signing/internal
lib/security/signing/keyfilePackage keyfile provides a signing service that uses files to store keys.
lib/security/signing/sshagentPackage sshagent provides the ability to use openssh's ssh-agent to carry out key signing operations using keys stored therein.
lib/signalsPackage signals implements utilities for managing process shutdown with support for signal-handling.
lib/statsPackage stats implements a global repository of stats objects.
lib/stats/counterPackage counter implements counters that keeps track of their recent values over different periods of time.
lib/stats/histogramPackage histogram implements a basic histogram to keep track of data distribution.
lib/stats/sysstatsPackage sysstats implements system statistics and updates them periodically.
lib/timekeeperPackage timekeeper defines an interface to allow switching between real time and simulated time.
lib/v23cmdPackage v23cmd implements utilities for running v23 cmdline programs.
lib/vdl/buildPackage build implements utilities to collect VDL build information and run the parser and compiler.
lib/vdl/build/internal/builtinvdlroot
lib/vdl/codegenPackage codegen implements utilities for VDL code generators.
lib/vdl/codegen/golangPackage golang implements Go code generation from compiled VDL packages.
lib/vdl/codegen/javaPackage java implements Java code generation from compiled VDL packages.
lib/vdl/codegen/javascriptPackage javascript implements Javascript code generation from compiled VDL packages.
lib/vdl/codegen/jsonPackage json implements JSON generation for VDL const values.
lib/vdl/codegen/swiftPackage swift implements Swift code generation from compiled VDL packages.
lib/vdl/codegen/vdlgenPackage vdlgen implements VDL code generation from compiled VDL packages.
lib/vdl/compilePackage compile implements the VDL compiler, converting a parse tree into compiled results.
lib/vdl/internal/vdltestutilPackage vdltestutil provides testing utilities for v.io/x/ref/lib/vdl/...
lib/vdl/opconstPackage opconst defines the representation and operations for VDL constants.
lib/vdl/parsePackage parse implements the VDL parser, converting source files into a parse tree.
lib/vdl/vdlutilPackage vdlutil implements utilities used by many VDL components.
runtimePackage runtime and its subdirectories provide implementations of the Vanadium runtime for different runtime environments.
runtime/factories/fakePackage fake implements a fake RuntimeFactory, useful in tests for mocking out certain components.
runtime/factories/genericPackage generic implements a RuntimeFactory that is useful in tests.
runtime/factories/libraryPackage library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications.
runtime/factories/roamingPackage roaming implements a RuntimeFactory suitable for a variety of network configurations, including 1-1 NATs, dhcp auto-configuration, Amazon Web Services and Google Compute Engine.
runtime/factories/staticPackage static implements a RuntimeFactory suitable for a variety of network configurations, including 1-1 NATs, Amazon Web Services and Google Compute Engine but hosted on a static IP address with no support for adapting to dhcp changes.
runtime/internal
runtime/internal/cloudvmPackage cloudvm provides functions to test whether the current process is running on Google Compute Engine or Amazon Web Services, and to extract settings from this environment.
runtime/internal/cloudvm/cloudpaths
runtime/internal/cloudvm/cloudvmtest
runtime/internal/flow
runtime/internal/flow/connnolint:golint
runtime/internal/flow/crypto
runtime/internal/flow/flowtest
runtime/internal/flow/managernolint:golint
runtime/internal/lib/dependencyPackage dependency keeps track of a dependency graph.
runtime/internal/lib/dequePackage deque implements a deque using a circular array.
runtime/internal/lib/syncPackage sync provides synchronization primitives.
runtime/internal/lib/upcqueuePackage upcqueue implements an unbounded producer/consumer queue.
runtime/internal/namingPackage naming provides an implementation of the interfaces in v.io/v23/naming.
runtime/internal/naming/namespace
runtime/internal/platform
runtime/internal/rpcnolint:golint
runtime/internal/rpc/benchmarkpackage benchmark provides simple tools to measure the performance of the IPC system.
runtime/internal/rpc/benchmark/benchmarkCommand benchmark runs the benchmark client.
runtime/internal/rpc/benchmark/benchmarkdCommand benchmarkd runs the benchmark server.
runtime/internal/rpc/benchmark/internal
runtime/internal/rpc/stressnolint:golint
runtime/internal/rpc/stress/internal
runtime/internal/rpc/stress/mtstressUsage: mtstress [flags] <command>
runtime/internal/rpc/stress/stressCommand stress is a tool to stress/load test RPC by issuing randomly generated requests.
runtime/internal/rpc/stress/stressdCommand stressd runs the stress-test server.
runtime/internal/rpc/testpackage test contains test for rpc code that do not rely on unexposed rpc declarations.
runtime/internal/rpc/version
runtime/internal/rt
runtime/internal/testing/mocks/naming
runtime/internal/vtracePackage vtrace implements the Trace and Span interfaces in v.io/v23/vtrace.
runtime/protocols/bidinolint:golint
runtime/protocols/debug
runtime/protocols/lib/framernolint:golint
runtime/protocols/lib/tcputilpackage tcputil contains functions commonly used to manipulate TCP connections.
runtime/protocols/lib/websocketnolint:golint
runtime/protocols/local
runtime/protocols/tcp
runtime/protocols/vinePackage vine contains Vanadium's Implementation of Network Emulation (VINE).
runtime/protocols/ws
runtime/protocols/wshPackage wsh registers the websocket 'hybrid' protocol.
runtime/protocols/wsh_naclPackage wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures.
services/agentPackage agent defines an interface to keep a private key in memory, and for clients to have access to the private key.
services/agent/agentlibPackage agentlib provides ways to create Principals that are backed by the security agent.
services/agent/gcredsCommand gcreds runs a command with Google Cloud Blessings.
services/agent/internal/cache
services/agent/internal/constantsPackage constants holds constants shared by client and server.
services/agent/internal/ipcPackage ipc implements a simple IPC system based on VOM.
services/agent/internal/lockPackage lock provides a lock object to synchronize access to a directory among multiple processes.
services/agent/internal/lruPackage lru implements a Least-Recently-Used (LRU) cache of objects keyed by a string.
services/agent/internal/versionPackage version provides versioning for the agent.
services/agent/serverPackage server contains utilities for serving a principal using a socket-based IPC system.
services/agent/v23agentdCommand v23agentd manages the security agent daemon, which holds the private key, blessings and recognized roots of a principal in memory and makes the principal available to other processes.
services/benPackage ben defines datastructures to archive microbenchmark results.
services/ben/archivePackage archive defines the RPC interface for archiving benchmark results.
services/ben/benarchdCommand benarchd implements a benchmark archival daemon.
services/ben/benarchd/internalgo:generate ./gen_assets.sh
services/ben/benarchd/internal/assets
services/debug/debugCommand debug supports debugging Vanadium servers.
services/debug/debug/browseserverPackage browseserver provides a web interface that can be used to interact with the vanadium debug interface.
services/debug/debuglibPackage debuglib implements debug server support.
services/dischargerPackage discharger defines an interface for obtaining discharges for third-party caveats.
services/http/http
services/http/httplib
services/identityPackage identity defines interfaces for Vanadium identity providers.
services/identity/identitydCommand identityd runs a daemon HTTP server that uses OAuth to create security.Blessings objects.
services/identity/identitylibPackage identitylib implements a test identityd service registered using the v.io/x/lib/gosh library.
services/identity/internal/auditor
services/identity/internal/blesser
services/identity/internal/caveats
services/identity/internal/dischargerlib
services/identity/internal/handlers
services/identity/internal/oauthPackage oauth implements an http.Handler that has two main purposes listed below:
services/identity/internal/revocationnolint:golint
services/identity/internal/serverHTTP server that uses OAuth to create security.Blessings objects.
services/identity/internal/templates
services/identity/internal/utilPackage util implements miscellaneous utility functions needed by the identity HTTP server.
services/internal/dbutilPackage dbutil implements utilities for opening and configuring connections to MySQL-like databases, with optional TLS support.
services/internal/dirprinterPackage dirprinter contains utilities for dumping the contents and structure of a directory tree.
services/internal/httplib
services/internal/logreaderlibPackage logreaderlib implements the LogFile interface from v.io/v23/services/logreader, which can be used to allow remote access to log files, and the ChildrenGlobber interface from v.io/v23/rpc to find the files in a logs directory.
services/internal/multipartPackage multipart implements an http.File that acts as one logical file backed by several physical files (the 'parts').
services/internal/pathpermsPackage pathperms provides a library to assist servers implementing GetPermissions/SetPermissions functions and authorizers where there are path-specific Permissions stored individually in files.
services/internal/pproflibPackage pproflib defines a client-side proxy and server-side implementation of the v.io/v23/services/pprof interface.
services/internal/restsigner
services/internal/restsigner/rest_signer_test
services/internal/restsigner/signer/v1Package signer provides access to the .
services/internal/servicetestPackage servicetest provides functionality to help write tests for the Vanadium services.
services/internal/statslibPackage statslib implements the Stats interface from v.io/v23/services/stats.
services/internal/vtracelib
services/mounttable/mounttabledCommand mounttabled runs the mount table daemon, which implements the v.io/v23/services/mounttable interfaces.
services/mounttable/mounttablelibPackage mounttablelib implements utilities for mounttable implementations.
services/rolePackage role defines an interface for requesting blessings from a role account server.
services/role/roledCommand roled runs the Role interface daemon.
services/role/roled/internalPackage internal implements the role service defined in v.io/x/ref/services/role
services/statsPackages stats defines the non-native types exported by the stats service.
services/xproxyPackage xproxy enables services to export (proxy) themselves across networks (behind NATs for example).
services/xproxy/xproxyPackage xproxy contains the implementation of the proxy service.
services/xproxy/xproxydCommand proxyd is a daemon that listens for connections from Vanadium services (typically behind NATs) and proxies these services to the outside world.
testPackage test implements initialization for unit and integration tests.
test/basicsPackage basics implements some benchmarks for important basic operations in go.
test/benchmarkPackage benchmark implements utilities to augment the standard Go testing.Benchmark functionality.
test/expectPackage expect implements support for checking expectations against a buffered input stream.
test/goroutines
test/helloPackage hello defines a simple client and server and uses them in a series of regression tests.
test/hello/helloclientCommand helloclient is a simple client mainly used in regression tests.
test/hello/helloserverCommand helloserver is a simple server mainly used in regression tests.
test/testutilPackage testutil implements utilities for unit and integration tests.
test/testutil/testsshagent
test/timekeeperPackage timekeeper implements simulated time against the v.io/x/ref/lib/timekeeper.TimeKeeper interface.
test/v23testPackage v23test defines Shell, a wrapper around gosh.Shell that provides Vanadium-specific functionality such as credentials management, StartRootMountTable, and StartSyncbase.

Package ref imports 2 packages (graph) and is imported by 59 packages. Updated 2020-10-22. Refresh now. Tools for package owners.