repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

pico / pkg / apps / pgs / db
Eric Bower  ·  2026-03-05

db.go

 1package pgsdb
 2
 3import (
 4	"strings"
 5
 6	"github.com/picosh/pico/pkg/db"
 7)
 8
 9type PgsDB interface {
10	FindUser(userID string) (*db.User, error)
11	FindUserByName(name string) (*db.User, error)
12	FindUserByPubkey(pubkey string) (*db.User, error)
13	FindUsers() ([]*db.User, error)
14
15	FindFeature(userID string, name string) (*db.FeatureFlag, error)
16	InsertAccessLog(*db.AccessLog) error
17
18	InsertProject(userID, name, projectDir string) (string, error)
19	UpdateProject(userID, name string) error
20	UpdateProjectAcl(userID, name string, acl db.ProjectAcl) error
21	UpsertProject(userID, projectName, projectDir string) (*db.Project, error)
22	RemoveProject(projectID string) error
23	LinkToProject(userID, projectID, projectDir string, commit bool) error
24	FindProjectByName(userID, name string) (*db.Project, error)
25	FindProjectLinks(userID, name string) ([]*db.Project, error)
26	FindProjectsByUser(userID string) ([]*db.Project, error)
27	FindProjectsByPrefix(userID, name string) ([]*db.Project, error)
28	FindProjects(by string) ([]*db.Project, error)
29
30	InsertFormEntry(userID, name string, data map[string]interface{}) error
31	FindFormEntriesByUserAndName(userID, name string) ([]*db.FormEntry, error)
32	FindFormNamesByUser(userID string) ([]string, error)
33	RemoveFormEntriesByUserAndName(userID, name string) error
34
35	RegisterAdmin(username, pubkey, pubkeyName string) error
36
37	Close() error
38}
39
40func IsProjectPrivate(projectName string) bool {
41	return strings.HasPrefix(projectName, "private-")
42}