byggsteg

viewing logs

job succesvol

wikimusic-api__19:23:16__06-01-2025.byggsteg.log

took 126 secondsstarted at: ma 06 jan 2025 19:23:16 CETupdated at: ma 06 jan 2025 19:25:22 CET
uuid: 2872f168-297a-45b5-8be5-49f276c9d04clog uuid: a348f315-f85f-4507-a8cb-969098c3538c
(lambda() 
  `((project . "wikimusic-api")
    (branch-name . "trunk")
    (task . "stack-test")
    (clone-url . "https://codeberg.org/jjba23/wikimusic-api")))

starting new job...

- running command: cd /var/log/byggsteg/job-clone/wikimusic-api/trunk && git pull
Already up to date.

- running command: cd /var/log/byggsteg/job-clone/wikimusic-api/trunk && stack --nix test

starts WikiMusic application properly
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...  starts and shuts down the application properly [✔]
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /system-information HTTP/1.1" 200 - "" ""
Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31"),("Content-Type","application/json;charset=utf-8")], responseBody = "{\"processStartedAt\":\"2025-01-06T18:25:14.045747766Z\",\"reportedVersion\":\"\"}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 56493
  secure               = False
  requestHeaders       = []
  path                 = "/system-information"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  checks that the system information route is reachable [✔]
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /songs/identifier/abc HTTP/1.1" 400 - "" ""
Response {responseStatus = Status {statusCode = 400, statusMessage = "Bad Request"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "invalid UUID", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 52502
  secure               = False
  requestHeaders       = []
  path                 = "/songs/identifier/abc"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /artists/identifier/abc HTTP/1.1" 400 - "" ""
Response {responseStatus = Status {statusCode = 400, statusMessage = "Bad Request"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "invalid UUID", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 52502
  secure               = False
  requestHeaders       = []
  path                 = "/artists/identifier/abc"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /genres/identifier/abc HTTP/1.1" 400 - "" ""
Response {responseStatus = Status {statusCode = 400, statusMessage = "Bad Request"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "invalid UUID", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 52502
  secure               = False
  requestHeaders       = []
  path                 = "/genres/identifier/abc"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  checks that invalid UUIDs always return a 400 [✔]
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /songs HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/songs"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /songs/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/songs/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /artists HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/artists"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /artists/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/artists/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /genres HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/genres"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
127.0.0.1 - - [06/Jan/2025:19:25:14 +0100] "GET /genres/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a HTTP/1.1" 401 - "" ""
Response {responseStatus = Status {statusCode = 401, statusMessage = "Unauthorized"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:14 GMT"),("Server","Warp/3.3.31")], responseBody = "", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 14291
  secure               = False
  requestHeaders       = []
  path                 = "/genres/identifier/c19e4f56-7c06-437d-b8f7-59d13dd53c9a"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  checks that protected routes are returning 401 when not logged in [✔]
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...INSERT INTO "users"("identifier", "display_name", "email_address", "password_hash", "password_reset_token", "auth_token", "latest_login_at", "latest_login_device", "avatar_url", "created_at", "last_edited_at", "description") VALUES (?, ?, ?, ?, NULL, ?, NULL, NULL, NULL, ?, NULL, ?);
-- With values: [SQLText "80f7a0ee-2e74-4947-92ad-c79cbcf63d6d",SQLText "bqymfqumfrlbtwgs",SQLText "bqymfqumfrlbtwgs@gmail.com",SQLText "$2b$10$4so0uq17zygHjW7s35UnFO8F4k0DTwjWr5vZ2wQiHo.hQTNVtk9I6",SQLText "sgwtblrfmuqfmyqb-sgwtblrfmuqfmyqb",SQLText "2025-01-06 18:25:15.244407441",SQLText "isxxdwskgiktjezv"]
INSERT INTO "user_roles"("identifier", "user_identifier", "role_id", "created_at") VALUES (?, ?, ?, ?);
-- With values: [SQLText "1f552b26-74ba-4dea-9dd8-1ef50101edb1",SQLText "80f7a0ee-2e74-4947-92ad-c79cbcf63d6d",SQLText "wm::demo",SQLText "2025-01-06 18:25:15.244407441"]
SELECT "t0"."identifier" AS "res0", "t0"."display_name" AS "res1", "t0"."email_address" AS "res2", "t0"."password_hash" AS "res3", "t0"."password_reset_token" AS "res4", "t0"."auth_token" AS "res5", "t0"."latest_login_at" AS "res6", "t0"."latest_login_device" AS "res7", "t0"."avatar_url" AS "res8", "t0"."created_at" AS "res9", "t0"."last_edited_at" AS "res10", "t0"."description" AS "res11" FROM "users" AS "t0" WHERE CASE WHEN (("t0"."auth_token") IS NULL) AND ((?) IS NULL) THEN ? WHEN (("t0"."auth_token") IS NULL) OR ((?) IS NULL) THEN ? ELSE ("t0"."auth_token")=(?) END;
-- With values: [SQLText "sgwtblrfmuqfmyqb-sgwtblrfmuqfmyqb",SQLInteger 1,SQLText "sgwtblrfmuqfmyqb-sgwtblrfmuqfmyqb",SQLInteger 0,SQLText "sgwtblrfmuqfmyqb-sgwtblrfmuqfmyqb"]
SELECT "t0"."identifier" AS "res0", "t0"."user_identifier" AS "res1", "t0"."role_id" AS "res2", "t0"."created_at" AS "res3" FROM "user_roles" AS "t0" WHERE ("t0"."user_identifier")=(?);
-- With values: [SQLText "80f7a0ee-2e74-4947-92ad-c79cbcf63d6d"]
SELECT "t0"."identifier" AS "res0", "t0"."display_name" AS "res1", "t0"."music_key" AS "res2", "t0"."music_tuning" AS "res3", "t0"."music_creation_date" AS "res4", "t0"."album_name" AS "res5", "t0"."album_info_link" AS "res6", "t0"."created_by" AS "res7", "t0"."visibility_status" AS "res8", "t0"."approved_by" AS "res9", "t0"."created_at" AS "res10", "t0"."last_edited_at" AS "res11", "t0"."views" AS "res12", "t0"."description" AS "res13" FROM "songs" AS "t0" ORDER BY "t0"."created_at" DESC LIMIT 25 OFFSET 0;
-- With values: []
SELECT "t0"."identifier" AS "res0", "t0"."song_identifier" AS "res1", "t0"."created_by" AS "res2", "t0"."spotify_url" AS "res3", "t0"."youtube_url" AS "res4", "t0"."soundcloud_url" AS "res5", "t0"."wikipedia_url" AS "res6", "t0"."created_at" AS "res7", "t0"."last_edited_at" AS "res8" FROM "song_external_sources" AS "t0" WHERE ?;
-- With values: [SQLInteger 0]
127.0.0.1 - - [06/Jan/2025:19:25:15 +0100] "GET /songs HTTP/1.1" 200 - "" ""
Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:15 GMT"),("Server","Warp/3.3.31"),("Content-Type","application/json;charset=utf-8")], responseBody = "{\"songs\":{},\"sortOrder\":[]}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 19124
  secure               = False
  requestHeaders       = [("x-wikimusic-auth","sgwtblrfmuqfmyqb-sgwtblrfmuqfmyqb")]
  path                 = "/songs"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  receives empty songs list when a user (demo) exists but no data exists in DB [✔]
Starting REST API ..."About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
INSERT INTO "users"("identifier", "display_name", "email_address", "password_hash", "password_reset_token", "auth_token", "latest_login_at", "latest_login_device", "avatar_url", "created_at", "last_edited_at", "description") VALUES (?, ?, ?, ?, NULL, ?, NULL, NULL, NULL, ?, NULL, ?);
-- With values: [SQLText "5b81c4a8-27f0-477d-b2f7-dfc4d691ad0f",SQLText "mdghkhndmgvnhdjr",SQLText "mdghkhndmgvnhdjr@gmail.com",SQLText "$2b$10$H.zNhExsgw1InYvEJub7bO0UuiLwU0ZGojuqdBEdFLqIFQ2a.93bG",SQLText "rjdhnvgmdnhkhgdm-rjdhnvgmdnhkhgdm",SQLText "2025-01-06 18:25:15.914310258",SQLText "soqielquhloburdg"]
INSERT INTO "user_roles"("identifier", "user_identifier", "role_id", "created_at") VALUES (?, ?, ?, ?);
-- With values: [SQLText "ab54e693-8fcc-40d9-8078-1e6f546d4578",SQLText "5b81c4a8-27f0-477d-b2f7-dfc4d691ad0f",SQLText "wm::demo",SQLText "2025-01-06 18:25:15.914310258"]
SELECT "t0"."identifier" AS "res0", "t0"."display_name" AS "res1", "t0"."email_address" AS "res2", "t0"."password_hash" AS "res3", "t0"."password_reset_token" AS "res4", "t0"."auth_token" AS "res5", "t0"."latest_login_at" AS "res6", "t0"."latest_login_device" AS "res7", "t0"."avatar_url" AS "res8", "t0"."created_at" AS "res9", "t0"."last_edited_at" AS "res10", "t0"."description" AS "res11" FROM "users" AS "t0" WHERE CASE WHEN (("t0"."auth_token") IS NULL) AND ((?) IS NULL) THEN ? WHEN (("t0"."auth_token") IS NULL) OR ((?) IS NULL) THEN ? ELSE ("t0"."auth_token")=(?) END;
-- With values: [SQLText "rjdhnvgmdnhkhgdm-rjdhnvgmdnhkhgdm",SQLInteger 1,SQLText "rjdhnvgmdnhkhgdm-rjdhnvgmdnhkhgdm",SQLInteger 0,SQLText "rjdhnvgmdnhkhgdm-rjdhnvgmdnhkhgdm"]
SELECT "t0"."identifier" AS "res0", "t0"."user_identifier" AS "res1", "t0"."role_id" AS "res2", "t0"."created_at" AS "res3" FROM "user_roles" AS "t0" WHERE ("t0"."user_identifier")=(?);
-- With values: [SQLText "5b81c4a8-27f0-477d-b2f7-dfc4d691ad0f"]
SELECT "t0"."identifier" AS "res0", "t0"."parent_identifier" AS "res1", "t0"."display_name" AS "res2", "t0"."created_by" AS "res3", "t0"."visibility_status" AS "res4", "t0"."approved_by" AS "res5", "t0"."created_at" AS "res6", "t0"."last_edited_at" AS "res7", "t0"."views" AS "res8", "t0"."description" AS "res9" FROM "genres" AS "t0" ORDER BY "t0"."created_at" DESC LIMIT 25 OFFSET 0;
-- With values: []
SELECT "t0"."identifier" AS "res0", "t0"."genre_identifier" AS "res1", "t0"."created_by" AS "res2", "t0"."spotify_url" AS "res3", "t0"."youtube_url" AS "res4", "t0"."soundcloud_url" AS "res5", "t0"."wikipedia_url" AS "res6", "t0"."created_at" AS "res7", "t0"."last_edited_at" AS "res8" FROM "genre_external_sources" AS "t0" WHERE ?;
-- With values: [SQLInteger 0]
127.0.0.1 - - [06/Jan/2025:19:25:15 +0100] "GET /genres HTTP/1.1" 200 - "" ""
Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:16 GMT"),("Server","Warp/3.3.31"),("Content-Type","application/json;charset=utf-8")], responseBody = "{\"genres\":{},\"sortOrder\":[]}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 15617
  secure               = False
  requestHeaders       = [("x-wikimusic-auth","rjdhnvgmdnhkhgdm-rjdhnvgmdnhkhgdm")]
  path                 = "/genres"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  receives empty genres list when a user (demo) exists but no data exists in DB [✔]
"About to run migrations!"
(0,"0-yggdrasil.sql") :| [(1,"1-initial-schema-definition.sql")]
Starting REST API ...INSERT INTO "users"("identifier", "display_name", "email_address", "password_hash", "password_reset_token", "auth_token", "latest_login_at", "latest_login_device", "avatar_url", "created_at", "last_edited_at", "description") VALUES (?, ?, ?, ?, NULL, ?, NULL, NULL, NULL, ?, NULL, ?);
-- With values: [SQLText "469e20f2-2af2-4d38-a659-cc0549a4fa3c",SQLText "ujlerdvecciyrzpk",SQLText "ujlerdvecciyrzpk@gmail.com",SQLText "$2b$10$59VOJyuOlir7QoWALGWhDePpoM/qSnlTz7AYThDRUn1HMNjkorBXO",SQLText "kpzryiccevdrelju-kpzryiccevdrelju",SQLText "2025-01-06 18:25:16.4060206",SQLText "yagutvtapzempagg"]
INSERT INTO "user_roles"("identifier", "user_identifier", "role_id", "created_at") VALUES (?, ?, ?, ?);
-- With values: [SQLText "00c7ff5b-bb87-4a52-bb19-4543d19b9982",SQLText "469e20f2-2af2-4d38-a659-cc0549a4fa3c",SQLText "wm::demo",SQLText "2025-01-06 18:25:16.4060206"]
SELECT "t0"."identifier" AS "res0", "t0"."display_name" AS "res1", "t0"."email_address" AS "res2", "t0"."password_hash" AS "res3", "t0"."password_reset_token" AS "res4", "t0"."auth_token" AS "res5", "t0"."latest_login_at" AS "res6", "t0"."latest_login_device" AS "res7", "t0"."avatar_url" AS "res8", "t0"."created_at" AS "res9", "t0"."last_edited_at" AS "res10", "t0"."description" AS "res11" FROM "users" AS "t0" WHERE CASE WHEN (("t0"."auth_token") IS NULL) AND ((?) IS NULL) THEN ? WHEN (("t0"."auth_token") IS NULL) OR ((?) IS NULL) THEN ? ELSE ("t0"."auth_token")=(?) END;
-- With values: [SQLText "kpzryiccevdrelju-kpzryiccevdrelju",SQLInteger 1,SQLText "kpzryiccevdrelju-kpzryiccevdrelju",SQLInteger 0,SQLText "kpzryiccevdrelju-kpzryiccevdrelju"]
SELECT "t0"."identifier" AS "res0", "t0"."user_identifier" AS "res1", "t0"."role_id" AS "res2", "t0"."created_at" AS "res3" FROM "user_roles" AS "t0" WHERE ("t0"."user_identifier")=(?);
-- With values: [SQLText "469e20f2-2af2-4d38-a659-cc0549a4fa3c"]
SELECT "t0"."identifier" AS "res0", "t0"."display_name" AS "res1", "t0"."created_by" AS "res2", "t0"."visibility_status" AS "res3", "t0"."approved_by" AS "res4", "t0"."created_at" AS "res5", "t0"."last_edited_at" AS "res6", "t0"."views" AS "res7", "t0"."description" AS "res8" FROM "artists" AS "t0" ORDER BY "t0"."created_at" DESC LIMIT 25 OFFSET 0;
-- With values: []
SELECT "t0"."identifier" AS "res0", "t0"."artist_identifier" AS "res1", "t0"."created_by" AS "res2", "t0"."spotify_url" AS "res3", "t0"."youtube_url" AS "res4", "t0"."soundcloud_url" AS "res5", "t0"."wikipedia_url" AS "res6", "t0"."created_at" AS "res7", "t0"."last_edited_at" AS "res8" FROM "artist_external_sources" AS "t0" WHERE ?;
-- With values: [SQLInteger 0]
127.0.0.1 - - [06/Jan/2025:19:25:16 +0100] "GET /artists HTTP/1.1" 200 - "" ""
Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Mon, 06 Jan 2025 18:25:16 GMT"),("Server","Warp/3.3.31"),("Content-Type","application/json;charset=utf-8")], responseBody = "{\"artists\":{},\"sortOrder\":[]}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose, responseOriginalRequest = Request {
  host                 = "127.0.0.1"
  port                 = 61168
  secure               = False
  requestHeaders       = [("x-wikimusic-auth","kpzryiccevdrelju-kpzryiccevdrelju")]
  path                 = "/artists"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
  proxySecureMode      = ProxySecureWithConnect
}
, responseEarlyHints = []}
  receives empty artists list when a user (demo) exists but no data exists in DB [✔]

Finished in 3.9341 seconds
7 examples, 0 failures

- running command: cd /var/log/byggsteg/job-clone/wikimusic-api/trunk && stack --nix sdist --tar-dir .

byggsteg is de hackable Guile CI/CD systeem.

byggsteg is vrije software, beschikbaar onder de GNU GPL v3 of nieuwer.

find the source code here:

https://codeberg.org/jjba23/byggsteg

powered by Guile Scheme, GNU Artanis, GNU Guix, TailwindCSS

Copyright © 2025 - Josep Bigorra & Mu Lei

byggsteg betekent “bouwstap” in het Noors.