Skip to content

Commit a3bda42

Browse files
committed
fix: upgrade packages
- fix app_data for cassandra & scylladb
1 parent 3fba4e4 commit a3bda42

File tree

6 files changed

+34
-12
lines changed

6 files changed

+34
-12
lines changed

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.21.1-alpine as go-builder
1+
FROM golang:1.21.3-alpine3.18 as go-builder
22
WORKDIR /authorizer
33
COPY server server
44
COPY Makefile .
@@ -11,7 +11,7 @@ RUN apk add build-base &&\
1111
make clean && make && \
1212
chmod 777 build/server
1313

14-
FROM node:17-alpine3.12 as node-builder
14+
FROM node:20-alpine3.18 as node-builder
1515
WORKDIR /authorizer
1616
COPY app app
1717
COPY dashboard dashboard
@@ -20,7 +20,7 @@ RUN apk add build-base &&\
2020
make build-app && \
2121
make build-dashboard
2222

23-
FROM alpine:latest
23+
FROM alpine:3.18
2424
RUN adduser -D -h /authorizer -u 1000 -k /dev/null authorizer
2525
WORKDIR /authorizer
2626
RUN mkdir app dashboard

server/db/providers/cassandradb/provider.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,13 @@ func NewProvider() (*provider, error) {
261261
log.Debug("Failed to alter table as column exists: ", err)
262262
// continue
263263
}
264+
// Add app_data column to users table
265+
appDataAlterQuery := fmt.Sprintf(`ALTER TABLE %s.%s ADD (app_data text);`, KeySpace, models.Collections.User)
266+
err = session.Query(appDataAlterQuery).Exec()
267+
if err != nil {
268+
log.Debug("Failed to alter user table as app_data column exists: ", err)
269+
// continue
270+
}
264271
// Add phone number index
265272
otpIndexQueryPhoneNumber := fmt.Sprintf("CREATE INDEX IF NOT EXISTS authorizer_otp_phone_number ON %s.%s (phone_number)", KeySpace, models.Collections.OTP)
266273
err = session.Query(otpIndexQueryPhoneNumber).Exec()

server/db/providers/cassandradb/user.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,13 +177,13 @@ func (p *provider) ListUsers(ctx context.Context, pagination *model.Pagination)
177177
// there is no offset in cassandra
178178
// so we fetch till limit + offset
179179
// and return the results from offset to limit
180-
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s LIMIT %d", KeySpace+"."+models.Collections.User, pagination.Limit+pagination.Offset)
180+
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, app_data, created_at, updated_at FROM %s LIMIT %d", KeySpace+"."+models.Collections.User, pagination.Limit+pagination.Offset)
181181
scanner := p.db.Query(query).Iter().Scanner()
182182
counter := int64(0)
183183
for scanner.Next() {
184184
if counter >= pagination.Offset {
185185
var user models.User
186-
err := scanner.Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.CreatedAt, &user.UpdatedAt)
186+
err := scanner.Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.AppData, &user.CreatedAt, &user.UpdatedAt)
187187
if err != nil {
188188
return nil, err
189189
}
@@ -200,8 +200,8 @@ func (p *provider) ListUsers(ctx context.Context, pagination *model.Pagination)
200200
// GetUserByEmail to get user information from database using email address
201201
func (p *provider) GetUserByEmail(ctx context.Context, email string) (*models.User, error) {
202202
var user models.User
203-
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s WHERE email = '%s' LIMIT 1 ALLOW FILTERING", KeySpace+"."+models.Collections.User, email)
204-
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.CreatedAt, &user.UpdatedAt)
203+
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, app_data, created_at, updated_at FROM %s WHERE email = '%s' LIMIT 1 ALLOW FILTERING", KeySpace+"."+models.Collections.User, email)
204+
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.AppData, &user.CreatedAt, &user.UpdatedAt)
205205
if err != nil {
206206
return nil, err
207207
}
@@ -211,8 +211,8 @@ func (p *provider) GetUserByEmail(ctx context.Context, email string) (*models.Us
211211
// GetUserByID to get user information from database using user ID
212212
func (p *provider) GetUserByID(ctx context.Context, id string) (*models.User, error) {
213213
var user models.User
214-
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s WHERE id = '%s' LIMIT 1", KeySpace+"."+models.Collections.User, id)
215-
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.CreatedAt, &user.UpdatedAt)
214+
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, app_data, created_at, updated_at FROM %s WHERE id = '%s' LIMIT 1", KeySpace+"."+models.Collections.User, id)
215+
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.AppData, &user.CreatedAt, &user.UpdatedAt)
216216
if err != nil {
217217
return nil, err
218218
}
@@ -306,8 +306,8 @@ func (p *provider) UpdateUsers(ctx context.Context, data map[string]interface{},
306306
// GetUserByPhoneNumber to get user information from database using phone number
307307
func (p *provider) GetUserByPhoneNumber(ctx context.Context, phoneNumber string) (*models.User, error) {
308308
var user models.User
309-
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s WHERE phone_number = '%s' LIMIT 1 ALLOW FILTERING", KeySpace+"."+models.Collections.User, phoneNumber)
310-
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.CreatedAt, &user.UpdatedAt)
309+
query := fmt.Sprintf("SELECT id, email, email_verified_at, password, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, app_data, created_at, updated_at FROM %s WHERE phone_number = '%s' LIMIT 1 ALLOW FILTERING", KeySpace+"."+models.Collections.User, phoneNumber)
310+
err := p.db.Query(query).Consistency(gocql.One).Scan(&user.ID, &user.Email, &user.EmailVerifiedAt, &user.Password, &user.SignupMethods, &user.GivenName, &user.FamilyName, &user.MiddleName, &user.Nickname, &user.Birthdate, &user.PhoneNumber, &user.PhoneNumberVerifiedAt, &user.Picture, &user.Roles, &user.RevokedTimestamp, &user.IsMultiFactorAuthEnabled, &user.AppData, &user.CreatedAt, &user.UpdatedAt)
311311
if err != nil {
312312
return nil, err
313313
}

server/email/email.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func SendEmail(to []string, event string, data map[string]interface{}) error {
9191

9292
tmp, err := getEmailTemplate(event, data)
9393
if err != nil {
94-
log.Errorf("Failed to get event template: ", err)
94+
log.Error("Failed to get event template: ", err)
9595
return err
9696
}
9797

server/test/signup_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,14 @@ func signupTests(t *testing.T, s TestSetup) {
4343
Email: email,
4444
Password: s.TestInfo.Password,
4545
ConfirmPassword: s.TestInfo.Password,
46+
AppData: map[string]interface{}{
47+
"test": "test",
48+
},
4649
})
4750
assert.Nil(t, err, "signup should be successful")
4851
user := *res.User
4952
assert.Equal(t, email, user.Email)
53+
assert.Equal(t, "test", user.AppData["test"])
5054
assert.Nil(t, res.AccessToken, "access token should be nil")
5155
res, err = resolvers.SignupResolver(ctx, model.SignUpInput{
5256
Email: email,

server/test/update_user_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,19 @@ func updateUserTest(t *testing.T, s TestSetup) {
5050
_, err = resolvers.UpdateUserResolver(ctx, model.UpdateUserInput{
5151
ID: user.ID,
5252
Roles: newRoles,
53+
AppData: map[string]interface{}{
54+
"test": "test",
55+
},
5356
})
5457
assert.Nil(t, err)
58+
// Get user and check if roles are updated
59+
users, err := resolvers.UsersResolver(ctx, nil)
60+
assert.Nil(t, err)
61+
for _, u := range users.Users {
62+
if u.ID == user.ID {
63+
assert.Equal(t, u.AppData["test"], "test")
64+
}
65+
}
5566
cleanData(email)
5667
})
5768
}

0 commit comments

Comments
 (0)