Versions in this module Expand all Collapse all v0 v0.0.10 Apr 16, 2023 Changes in this version + const TokenHeaderType + var TokenAlgorithm = jwt.SigningMethodES256 + func ParsePKCS8PrivateKey(b64 string) (*ecdsa.PrivateKey, error) + type CertificateApplication struct + func NewCertificateApplication(repo CertificateRepository, srv CertificateService, logger *zap.Logger) *CertificateApplication + func (app *CertificateApplication) CreateFileAccessCertificate(ctx context.Context, uid int32, file File) (*FileAccessCertificate, error) + func (app *CertificateApplication) GetFileAccessCertificate(ctx context.Context, uid int32, fid string) (*FileAccessCertificate, error) + type CertificateGrpcService struct + func NewCertificateGrpcServer(app *CertificateApplication, logger *zap.Logger, authHeader string) *CertificateGrpcService + func (server *CertificateGrpcService) Get(ctx context.Context, req *proto.File) (*proto.Certificate, error) + type CertificateRepository interface + Create func(ctx context.Context, cert *FileAccessCertificate) error + Delete func(ctx context.Context, cert *FileAccessCertificate) error + FindByFileIdAndUserId func(ctx context.Context, userId int32, fileId string) (*FileAccessCertificate, error) + Save func(ctx context.Context, cert *FileAccessCertificate) error + type CertificateService interface + SignFileAccessCertificate func(cert *FileAccessCertificate) error + type File interface + Id func() string + Permission func(uid int32) Permission + type FileAccessCertificate struct + func NewFileAccessCertificate(uid int32, file File) *FileAccessCertificate + func (cert *FileAccessCertificate) Claims(ttl *time.Duration, issuer string) (*FileAccessClaims, error) + func (cert *FileAccessCertificate) Token() string + type FileAccessClaims struct + FileId string + Owner bool + Read bool + Write bool + func (claims *FileAccessClaims) Permission() (perms Permission) + type JWTCertificateService struct + func NewCertificateService(sign *ecdsa.PrivateKey, issuer string, ttl *time.Duration, logger *zap.Logger) *JWTCertificateService + func (service *JWTCertificateService) ParseFileAccessCertificate(tokenStr string) (*FileAccessCertificate, error) + func (service *JWTCertificateService) SignFileAccessCertificate(cert *FileAccessCertificate) error + type MongoCertificateRepository struct + func NewMongoCertificateRepository(db *mongo.Database, logger *zap.Logger) *MongoCertificateRepository + func (repo *MongoCertificateRepository) Create(ctx context.Context, cert *FileAccessCertificate) error + func (repo *MongoCertificateRepository) Delete(ctx context.Context, cert *FileAccessCertificate) error + func (repo *MongoCertificateRepository) DeleteAllByFileId(ctx context.Context, fileId string) error + func (repo *MongoCertificateRepository) DeleteByFileIdAndUserId(ctx context.Context, userId int32, fileId string) error + func (repo *MongoCertificateRepository) FindByFileIdAndUserId(ctx context.Context, userId int32, fileId string) (*FileAccessCertificate, error) + func (repo *MongoCertificateRepository) Save(ctx context.Context, cert *FileAccessCertificate) error + type Permission uint8 + const Owner + const Read + const Write