pico

created pr with 55.1 on 2025-03-21T01:06:55Z · by c8ef7d19
cmds
checkout latest patchset:
ssh pr.pico.sh print 55 | git am -3
checkout any patchset in a patch request:
ssh pr.pico.sh print 55.[rev] | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 55
+2 -1 Makefile #
......@@ -127,10 +127,11 @@ migrate:
127127 $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20241125_add_content_type_to_analytics.sql
128128 $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20241202_add_more_idx_analytics.sql
129129 $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20250319_add_tuns_event_logs_table.sql
130+ $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20250320_add_connection_id_to_tuns_event_logs_table.sql
130131 .PHONY: migrate
131132
132133 latest:
133- $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20250319_add_tuns_event_logs_table.sql
134+ $(DOCKER_CMD) exec -i $(DB_CONTAINER) psql -U $(PGUSER) -d $(PGDATABASE) < ./sql/migrations/20250320_add_connection_id_to_tuns_event_logs_table.sql
134135 .PHONY: latest
135136
136137 psql:
+1 -1 pkg/db/db.go #
......@@ -333,8 +333,8 @@ type TunsEventLog struct {
333333 EventType string `json:"event_type"`
334334 TunnelType string `json:"tunnel_type"`
335335 ConnectionType string `json:"connection_type"`
336- TunnelAddrs []string `json:"tunnel_addrs"`
337336 CreatedAt *time.Time `json:"created_at"`
337+ ConnectionID string `json:"connection_id"`
338338 }
339339
340340 var NameValidator = regexp.MustCompile("^[a-zA-Z0-9]{1,50}$")
+8 -8 pkg/db/postgres/storage.go #
......@@ -12,7 +12,7 @@ import (
1212
1313 "slices"
1414
15- "github.com/lib/pq"
15+ _ "github.com/lib/pq"
1616 "github.com/picosh/pico/pkg/db"
1717 "github.com/picosh/utils"
1818 )
......@@ -1799,11 +1799,11 @@ func (me *PsqlDB) findPagesStats(userID string) (*db.UserServiceStats, error) {
17991799 func (me *PsqlDB) InsertTunsEventLog(log *db.TunsEventLog) error {
18001800 _, err := me.Db.Exec(
18011801 `INSERT INTO tuns_event_logs
1802- (user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, tunnel_addrs)
1802+ (user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, connection_id)
18031803 VALUES
18041804 ($1, $2, $3, $4, $5, $6, $7)`,
18051805 log.UserId, log.ServerID, log.RemoteAddr, log.EventType, log.TunnelType,
1806- log.ConnectionType, pq.Array(log.TunnelAddrs),
1806+ log.ConnectionType, log.ConnectionID,
18071807 )
18081808 return err
18091809 }
......@@ -1812,8 +1812,8 @@ func (me *PsqlDB) FindTunsEventLogsByAddr(userID, addr string) ([]*db.TunsEventL
18121812 logs := []*db.TunsEventLog{}
18131813 fmt.Println(addr)
18141814 rs, err := me.Db.Query(
1815- `SELECT id, user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, tunnel_addrs, created_at
1816- FROM tuns_event_logs WHERE user_id=$1 AND tunnel_addrs @> ARRAY[$2] ORDER BY created_at DESC`, userID, addr)
1815+ `SELECT id, user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, connection_id, created_at
1816+ FROM tuns_event_logs WHERE user_id=$1 AND connection_id=$2 ORDER BY created_at DESC`, userID, addr)
18171817 if err != nil {
18181818 return nil, err
18191819 }
......@@ -1823,7 +1823,7 @@ func (me *PsqlDB) FindTunsEventLogsByAddr(userID, addr string) ([]*db.TunsEventL
18231823 err := rs.Scan(
18241824 &log.ID, &log.UserId, &log.ServerID, &log.RemoteAddr,
18251825 &log.EventType, &log.TunnelType, &log.ConnectionType,
1826- (*pq.StringArray)(&log.TunnelAddrs), &log.CreatedAt,
1826+ &log.ConnectionID, &log.CreatedAt,
18271827 )
18281828 if err != nil {
18291829 return nil, err
......@@ -1841,7 +1841,7 @@ func (me *PsqlDB) FindTunsEventLogsByAddr(userID, addr string) ([]*db.TunsEventL
18411841 func (me *PsqlDB) FindTunsEventLogs(userID string) ([]*db.TunsEventLog, error) {
18421842 logs := []*db.TunsEventLog{}
18431843 rs, err := me.Db.Query(
1844- `SELECT id, user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, tunnel_addrs, created_at
1844+ `SELECT id, user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, connection_id, created_at
18451845 FROM tuns_event_logs WHERE user_id=$1 ORDER BY created_at DESC`, userID)
18461846 if err != nil {
18471847 return nil, err
......@@ -1852,7 +1852,7 @@ func (me *PsqlDB) FindTunsEventLogs(userID string) ([]*db.TunsEventLog, error) {
18521852 err := rs.Scan(
18531853 &log.ID, &log.UserId, &log.ServerID, &log.RemoteAddr,
18541854 &log.EventType, &log.TunnelType, &log.ConnectionType,
1855- (*pq.StringArray)(&log.TunnelAddrs), &log.CreatedAt,
1855+ &log.ConnectionID, &log.CreatedAt,
18561856 )
18571857 if err != nil {
18581858 return nil, err
+3 -4 pkg/shared/feed.go #
......@@ -3,7 +3,6 @@ package shared
33 import (
44 "fmt"
55 "sort"
6- "strings"
76 "time"
87
98 "github.com/gorilla/feeds"
......@@ -134,19 +133,19 @@ func UserFeed(me db.DB, user *db.User, token string) (*feeds.Feed, error) {
134133 for _, eventLog := range tunsLogs {
135134 content := fmt.Sprintf(`Created At: %s<br />
136135 Event type: %s<br />
136+Connection ID: %s<br />
137137 Connection type: %s<br />
138138 Remote addr: %s<br />
139139 Tunnel type: %s<br />
140-Tunnel addrs: %s<br />
141140 Server: %s`,
142141 eventLog.CreatedAt.Format(time.RFC3339), eventLog.EventType, eventLog.ConnectionType,
143- eventLog.RemoteAddr, eventLog.TunnelType, eventLog.TunnelAddrs, eventLog.ServerID,
142+ eventLog.RemoteAddr, eventLog.TunnelType, eventLog.ConnectionID, eventLog.ServerID,
144143 )
145144 logItem := &feeds.Item{
146145 Id: fmt.Sprintf("%d", eventLog.CreatedAt.Unix()),
147146 Title: fmt.Sprintf(
148147 "%s tuns event for %s",
149- eventLog.EventType, strings.Join(eventLog.TunnelAddrs, ", "),
148+ eventLog.EventType, eventLog.ConnectionID,
150149 ),
151150 Link: &feeds.Link{Href: "https://pico.sh"},
152151 Content: content,
+3 -0 sql/migrations/20250320_add_connection_id_to_tuns_event_logs_table.sql #
......@@ -0,0 +1,3 @@
1+DELETE FROM tuns_event_logs;
2+ALTER TABLE tuns_event_logs ADD COLUMN connection_id text NOT NULL;
3+ALTER TABLE tuns_event_logs DROP COLUMN tunnel_addrs;
Back to top