+1
-1
appview/config.go
appview/config/config.go
+1
-1
appview/config.go
appview/config/config.go
+2
-2
appview/idresolver/resolver.go
+2
-2
appview/idresolver/resolver.go
···
11
"github.com/bluesky-social/indigo/atproto/identity/redisdir"
12
"github.com/bluesky-social/indigo/atproto/syntax"
13
"github.com/carlmjohnson/versioninfo"
14
-
"tangled.sh/tangled.sh/core/appview"
15
)
16
17
type Resolver struct {
···
53
}
54
}
55
56
-
func RedisResolver(config appview.RedisConfig) (*Resolver, error) {
57
directory, err := RedisDirectory(config.ToURL())
58
if err != nil {
59
return nil, err
···
11
"github.com/bluesky-social/indigo/atproto/identity/redisdir"
12
"github.com/bluesky-social/indigo/atproto/syntax"
13
"github.com/carlmjohnson/versioninfo"
14
+
"tangled.sh/tangled.sh/core/appview/config"
15
)
16
17
type Resolver struct {
···
53
}
54
}
55
56
+
func RedisResolver(config config.RedisConfig) (*Resolver, error) {
57
directory, err := RedisDirectory(config.ToURL())
58
if err != nil {
59
return nil, err
+2
-2
appview/oauth/handler/handler.go
+2
-2
appview/oauth/handler/handler.go
···
13
"github.com/lestrrat-go/jwx/v2/jwk"
14
"github.com/posthog/posthog-go"
15
"tangled.sh/icyphox.sh/atproto-oauth/helpers"
16
-
"tangled.sh/tangled.sh/core/appview"
17
"tangled.sh/tangled.sh/core/appview/db"
18
"tangled.sh/tangled.sh/core/appview/idresolver"
19
"tangled.sh/tangled.sh/core/appview/middleware"
···
29
)
30
31
type OAuthHandler struct {
32
-
Config *appview.Config
33
Pages *pages.Pages
34
Idresolver *idresolver.Resolver
35
Db *db.DB
···
13
"github.com/lestrrat-go/jwx/v2/jwk"
14
"github.com/posthog/posthog-go"
15
"tangled.sh/icyphox.sh/atproto-oauth/helpers"
16
+
"tangled.sh/tangled.sh/core/appview/config"
17
"tangled.sh/tangled.sh/core/appview/db"
18
"tangled.sh/tangled.sh/core/appview/idresolver"
19
"tangled.sh/tangled.sh/core/appview/middleware"
···
29
)
30
31
type OAuthHandler struct {
32
+
Config *config.Config
33
Pages *pages.Pages
34
Idresolver *idresolver.Resolver
35
Db *db.DB
+3
-2
appview/oauth/oauth.go
+3
-2
appview/oauth/oauth.go
···
11
oauth "tangled.sh/icyphox.sh/atproto-oauth"
12
"tangled.sh/icyphox.sh/atproto-oauth/helpers"
13
"tangled.sh/tangled.sh/core/appview"
14
"tangled.sh/tangled.sh/core/appview/db"
15
"tangled.sh/tangled.sh/core/appview/oauth/client"
16
xrpc "tangled.sh/tangled.sh/core/appview/xrpcclient"
···
30
type OAuth struct {
31
Store *sessions.CookieStore
32
Db *db.DB
33
-
Config *appview.Config
34
}
35
36
-
func NewOAuth(db *db.DB, config *appview.Config) *OAuth {
37
return &OAuth{
38
Store: sessions.NewCookieStore([]byte(config.Core.CookieSecret)),
39
Db: db,
···
11
oauth "tangled.sh/icyphox.sh/atproto-oauth"
12
"tangled.sh/icyphox.sh/atproto-oauth/helpers"
13
"tangled.sh/tangled.sh/core/appview"
14
+
"tangled.sh/tangled.sh/core/appview/config"
15
"tangled.sh/tangled.sh/core/appview/db"
16
"tangled.sh/tangled.sh/core/appview/oauth/client"
17
xrpc "tangled.sh/tangled.sh/core/appview/xrpcclient"
···
31
type OAuth struct {
32
Store *sessions.CookieStore
33
Db *db.DB
34
+
Config *config.Config
35
}
36
37
+
func NewOAuth(db *db.DB, config *config.Config) *OAuth {
38
return &OAuth{
39
Store: sessions.NewCookieStore([]byte(config.Core.CookieSecret)),
40
Db: db,
+2
-2
appview/pages/pages.go
+2
-2
appview/pages/pages.go
···
15
"path/filepath"
16
"strings"
17
18
-
"tangled.sh/tangled.sh/core/appview"
19
"tangled.sh/tangled.sh/core/appview/db"
20
"tangled.sh/tangled.sh/core/appview/oauth"
21
"tangled.sh/tangled.sh/core/appview/pages/markup"
···
45
rctx *markup.RenderContext
46
}
47
48
-
func NewPages(config *appview.Config) *Pages {
49
// initialized with safe defaults, can be overriden per use
50
rctx := &markup.RenderContext{
51
IsDev: config.Core.Dev,
···
15
"path/filepath"
16
"strings"
17
18
+
"tangled.sh/tangled.sh/core/appview/config"
19
"tangled.sh/tangled.sh/core/appview/db"
20
"tangled.sh/tangled.sh/core/appview/oauth"
21
"tangled.sh/tangled.sh/core/appview/pages/markup"
···
45
rctx *markup.RenderContext
46
}
47
48
+
func NewPages(config *config.Config) *Pages {
49
// initialized with safe defaults, can be overriden per use
50
rctx := &markup.RenderContext{
51
IsDev: config.Core.Dev,
+3
-2
appview/pulls/pulls.go
+3
-2
appview/pulls/pulls.go
···
15
16
"tangled.sh/tangled.sh/core/api/tangled"
17
"tangled.sh/tangled.sh/core/appview"
18
"tangled.sh/tangled.sh/core/appview/db"
19
"tangled.sh/tangled.sh/core/appview/idresolver"
20
"tangled.sh/tangled.sh/core/appview/oauth"
···
39
pages *pages.Pages
40
idResolver *idresolver.Resolver
41
db *db.DB
42
-
config *appview.Config
43
posthog posthog.Client
44
}
45
···
49
pages *pages.Pages,
50
resolver *idresolver.Resolver,
51
db *db.DB,
52
-
config *appview.Config,
53
) *Pulls {
54
return &Pulls{
55
oauth: oauth,
···
15
16
"tangled.sh/tangled.sh/core/api/tangled"
17
"tangled.sh/tangled.sh/core/appview"
18
+
"tangled.sh/tangled.sh/core/appview/config"
19
"tangled.sh/tangled.sh/core/appview/db"
20
"tangled.sh/tangled.sh/core/appview/idresolver"
21
"tangled.sh/tangled.sh/core/appview/oauth"
···
40
pages *pages.Pages
41
idResolver *idresolver.Resolver
42
db *db.DB
43
+
config *config.Config
44
posthog posthog.Client
45
}
46
···
50
pages *pages.Pages,
51
resolver *idresolver.Resolver,
52
db *db.DB,
53
+
config *config.Config,
54
) *Pulls {
55
return &Pulls{
56
oauth: oauth,
+3
-2
appview/repo/repo.go
+3
-2
appview/repo/repo.go
···
18
19
"tangled.sh/tangled.sh/core/api/tangled"
20
"tangled.sh/tangled.sh/core/appview"
21
"tangled.sh/tangled.sh/core/appview/db"
22
"tangled.sh/tangled.sh/core/appview/idresolver"
23
"tangled.sh/tangled.sh/core/appview/oauth"
···
44
type Repo struct {
45
repoResolver *reporesolver.RepoResolver
46
idResolver *idresolver.Resolver
47
-
config *appview.Config
48
oauth *oauth.OAuth
49
pages *pages.Pages
50
db *db.DB
···
58
pages *pages.Pages,
59
idResolver *idresolver.Resolver,
60
db *db.DB,
61
-
config *appview.Config,
62
posthog posthog.Client,
63
enforcer *rbac.Enforcer,
64
) *Repo {
···
18
19
"tangled.sh/tangled.sh/core/api/tangled"
20
"tangled.sh/tangled.sh/core/appview"
21
+
"tangled.sh/tangled.sh/core/appview/config"
22
"tangled.sh/tangled.sh/core/appview/db"
23
"tangled.sh/tangled.sh/core/appview/idresolver"
24
"tangled.sh/tangled.sh/core/appview/oauth"
···
45
type Repo struct {
46
repoResolver *reporesolver.RepoResolver
47
idResolver *idresolver.Resolver
48
+
config *config.Config
49
oauth *oauth.OAuth
50
pages *pages.Pages
51
db *db.DB
···
59
pages *pages.Pages,
60
idResolver *idresolver.Resolver,
61
db *db.DB,
62
+
config *config.Config,
63
posthog posthog.Client,
64
enforcer *rbac.Enforcer,
65
) *Repo {
+3
-3
appview/reporesolver/resolver.go
+3
-3
appview/reporesolver/resolver.go
···
15
"github.com/bluesky-social/indigo/atproto/syntax"
16
securejoin "github.com/cyphar/filepath-securejoin"
17
"github.com/go-chi/chi/v5"
18
-
"tangled.sh/tangled.sh/core/appview"
19
"tangled.sh/tangled.sh/core/appview/db"
20
"tangled.sh/tangled.sh/core/appview/idresolver"
21
"tangled.sh/tangled.sh/core/appview/oauth"
···
39
}
40
41
type RepoResolver struct {
42
-
config *appview.Config
43
enforcer *rbac.Enforcer
44
idResolver *idresolver.Resolver
45
execer db.Execer
46
}
47
48
-
func New(config *appview.Config, enforcer *rbac.Enforcer, resolver *idresolver.Resolver, execer db.Execer) *RepoResolver {
49
return &RepoResolver{config: config, enforcer: enforcer, idResolver: resolver, execer: execer}
50
}
51
···
15
"github.com/bluesky-social/indigo/atproto/syntax"
16
securejoin "github.com/cyphar/filepath-securejoin"
17
"github.com/go-chi/chi/v5"
18
+
"tangled.sh/tangled.sh/core/appview/config"
19
"tangled.sh/tangled.sh/core/appview/db"
20
"tangled.sh/tangled.sh/core/appview/idresolver"
21
"tangled.sh/tangled.sh/core/appview/oauth"
···
39
}
40
41
type RepoResolver struct {
42
+
config *config.Config
43
enforcer *rbac.Enforcer
44
idResolver *idresolver.Resolver
45
execer db.Execer
46
}
47
48
+
func New(config *config.Config, enforcer *rbac.Enforcer, resolver *idresolver.Resolver, execer db.Execer) *RepoResolver {
49
return &RepoResolver{config: config, enforcer: enforcer, idResolver: resolver, execer: execer}
50
}
51
+2
-1
appview/settings/settings.go
+2
-1
appview/settings/settings.go
···
13
"github.com/go-chi/chi/v5"
14
"tangled.sh/tangled.sh/core/api/tangled"
15
"tangled.sh/tangled.sh/core/appview"
16
"tangled.sh/tangled.sh/core/appview/db"
17
"tangled.sh/tangled.sh/core/appview/email"
18
"tangled.sh/tangled.sh/core/appview/middleware"
···
29
Db *db.DB
30
OAuth *oauth.OAuth
31
Pages *pages.Pages
32
-
Config *appview.Config
33
}
34
35
func (s *Settings) Router() http.Handler {
···
13
"github.com/go-chi/chi/v5"
14
"tangled.sh/tangled.sh/core/api/tangled"
15
"tangled.sh/tangled.sh/core/appview"
16
+
"tangled.sh/tangled.sh/core/appview/config"
17
"tangled.sh/tangled.sh/core/appview/db"
18
"tangled.sh/tangled.sh/core/appview/email"
19
"tangled.sh/tangled.sh/core/appview/middleware"
···
30
Db *db.DB
31
OAuth *oauth.OAuth
32
Pages *pages.Pages
33
+
Config *config.Config
34
}
35
36
func (s *Settings) Router() http.Handler {
+3
-2
appview/state/state.go
+3
-2
appview/state/state.go
···
20
"github.com/posthog/posthog-go"
21
"tangled.sh/tangled.sh/core/api/tangled"
22
"tangled.sh/tangled.sh/core/appview"
23
"tangled.sh/tangled.sh/core/appview/db"
24
"tangled.sh/tangled.sh/core/appview/idresolver"
25
"tangled.sh/tangled.sh/core/appview/oauth"
···
39
idResolver *idresolver.Resolver
40
posthog posthog.Client
41
jc *jetstream.JetstreamClient
42
-
config *appview.Config
43
repoResolver *reporesolver.RepoResolver
44
}
45
46
-
func Make(config *appview.Config) (*State, error) {
47
d, err := db.Make(config.Core.DbPath)
48
if err != nil {
49
return nil, err
···
20
"github.com/posthog/posthog-go"
21
"tangled.sh/tangled.sh/core/api/tangled"
22
"tangled.sh/tangled.sh/core/appview"
23
+
"tangled.sh/tangled.sh/core/appview/config"
24
"tangled.sh/tangled.sh/core/appview/db"
25
"tangled.sh/tangled.sh/core/appview/idresolver"
26
"tangled.sh/tangled.sh/core/appview/oauth"
···
40
idResolver *idresolver.Resolver
41
posthog posthog.Client
42
jc *jetstream.JetstreamClient
43
+
config *config.Config
44
repoResolver *reporesolver.RepoResolver
45
}
46
47
+
func Make(config *config.Config) (*State, error) {
48
d, err := db.Make(config.Core.DbPath)
49
if err != nil {
50
return nil, err
+2
-2
cmd/appview/main.go
+2
-2
cmd/appview/main.go
···
7
"net/http"
8
"os"
9
10
-
"tangled.sh/tangled.sh/core/appview"
11
"tangled.sh/tangled.sh/core/appview/state"
12
)
13
14
func main() {
15
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, nil)))
16
17
-
c, err := appview.LoadConfig(context.Background())
18
if err != nil {
19
log.Println("failed to load config", "error", err)
20
return
···
7
"net/http"
8
"os"
9
10
+
"tangled.sh/tangled.sh/core/appview/config"
11
"tangled.sh/tangled.sh/core/appview/state"
12
)
13
14
func main() {
15
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, nil)))
16
17
+
c, err := config.LoadConfig(context.Background())
18
if err != nil {
19
log.Println("failed to load config", "error", err)
20
return