README

bcpfs -- README

By spr

Introduction

Repo bcpfs contains tools for the BCP filesystem.

See CHANGELOG for changes.

See CONTRIBUTING for the development workflow.

Locations

Git locations:

License

Bcpfs is licensed like Nog under the MIT license, see LICENSE.txt. See Nog for contributing.

Expand ▾ Collapse ▴

Directories

Path Synopsis
cmd/bcpctl The `bcpctl` command controls BCP configuration.
cmd/bcpctl/internal/quota
cmd/bcpctl/v Package `bcpctl/v` provides the version info that is injected by the linker via `-X package/varname=value` flags.
cmd/bcpfs-perms Command `bcpfs-perms` maintains a toplevel filesystem tree for an organization with service facilities and research units.
cmd/bcpfs-perms/bcp Package `bcp` provides data structures that represent an organization with service facilities and research units.
cmd/bcpfs-perms/bcpcfg Package `bcpcfg` contains a reader for a config file that describes the filesystem setup for a service facility tree and a research unit tree.
cmd/bcpfs-perms/bcpfilter Package `bcpfilter` implements mechanisms to reject combinations of services and org units.
cmd/bcpfs-perms/bcpsharing Package `bcpsharing` implements logical NOE-9 BCPFS sharing.
cmd/bcpfs-perms/bcpsharingapply `bcpsharingapply` applies NOE-9 BCPFS sharing to the filesystem.
cmd/bcpfs-perms/describe
cmd/bcpfs-perms/fsapply Package `fsapply` provides `EnsurePermissions()` to create directories with the expected permissions.
cmd/bcpfs-perms/fsck Package `fsck` provides `CheckPermissions()`, which verifies that only the expected directories with the expected permissions are present.
cmd/bcpfs-perms/grp Package `grp` provides access to Unix groups.
cmd/bcpfs-perms/v Package `bcpfs-perms/v` provides the version info that is injected by the linker via `-X package/varname=value` flags.
cmd/bcpsucd `bcpsucd` is the root daemon for privilege separation; see NOE-12.
cmd/bcpsucd/v Package `bcpsucd/v` provides the version info that is injected by the linker via `-X package/varname=value` flags.
internal/suc/grpcd Package `grpcd` provides sucd-specific GRPC details.
internal/suc/quotad Package `suc/quotad` implements GRPC service `sucpb.SuCall` server `SetQuota()`.
internal/suc/statusd Package `statusd` implements GRPC service `sucpb.SuCall` server `Status()`.
pkg/execx Package `execx` provides utility functions that supplement the stdlib package `os/exec`.
pkg/grpc/ucred Package `ucred` provides `SO_PEERCRED` auth for GRPC over a Unix domain socket.
pkg/suc/grpc Package `grpc` provides GRPC details for sucd clients.
pkg/suc/quota Package `suc/quota` implements GRPC service `sucpb.SuCall` client `SetQuota()`.
pkg/suc/status Package `status` implements GRPC service `sucpb.SuCall` client `Status()`.
pkg/zap Package `zap` wraps Zap logging.