diff --git a/server/resource.go b/server/resource.go index 48c6fb8..8854ee6 100644 --- a/server/resource.go +++ b/server/resource.go @@ -33,18 +33,22 @@ func (s *ResourceService) Register(g *echo.Group) { Key: store.WorkspaceResourceRelativePath, }) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "Failed to workspace resource relative path setting").SetInternal(err) + return echo.NewHTTPError(http.StatusBadRequest, "failed to workspace resource relative path setting").SetInternal(err) } + if resourceRelativePathSetting == nil || resourceRelativePathSetting.Value == "" { + return echo.NewHTTPError(http.StatusBadRequest, "found no workspace resource relative path setting") + } + resourceRelativePath := resourceRelativePathSetting.Value resourcePath := fmt.Sprintf("%s/%s", resourceRelativePath, resourceID) buf, err := os.ReadFile(resourcePath) if err != nil { - return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to read the local resource: %s", resourcePath)).SetInternal(err) + return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to read the local resource: %s", resourcePath)).SetInternal(err) } kind, err := filetype.Match(buf) if err != nil { - return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Failed to match the local resource: %s", resourcePath)).SetInternal(err) + return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to match the local resource: %s", resourcePath)).SetInternal(err) } resourceMimeType := kind.MIME.Value c.Response().Writer.Header().Set(echo.HeaderCacheControl, "max-age=31536000, immutable") diff --git a/store/db/migration/dev/LATEST__SCHEMA.sql b/store/db/migration/dev/LATEST__SCHEMA.sql index 8ab7fc2..55145e3 100644 --- a/store/db/migration/dev/LATEST__SCHEMA.sql +++ b/store/db/migration/dev/LATEST__SCHEMA.sql @@ -59,3 +59,12 @@ CREATE TABLE activity ( level TEXT NOT NULL CHECK (level IN ('INFO', 'WARN', 'ERROR')) DEFAULT 'INFO', payload TEXT NOT NULL DEFAULT '{}' ); + +-- idp +CREATE TABLE idp ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + type TEXT NOT NULL, + identifier_filter TEXT NOT NULL DEFAULT '', + config TEXT NOT NULL DEFAULT '{}' +); diff --git a/store/db/migration/prod/0.5/00_idp.sql b/store/db/migration/prod/0.5/00_idp.sql new file mode 100644 index 0000000..3e7815d --- /dev/null +++ b/store/db/migration/prod/0.5/00_idp.sql @@ -0,0 +1,8 @@ +-- idp +CREATE TABLE idp ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + type TEXT NOT NULL, + identifier_filter TEXT NOT NULL DEFAULT '', + config TEXT NOT NULL DEFAULT '{}' +); diff --git a/store/db/migration/prod/LATEST__SCHEMA.sql b/store/db/migration/prod/LATEST__SCHEMA.sql index 8ab7fc2..55145e3 100644 --- a/store/db/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/migration/prod/LATEST__SCHEMA.sql @@ -59,3 +59,12 @@ CREATE TABLE activity ( level TEXT NOT NULL CHECK (level IN ('INFO', 'WARN', 'ERROR')) DEFAULT 'INFO', payload TEXT NOT NULL DEFAULT '{}' ); + +-- idp +CREATE TABLE idp ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + type TEXT NOT NULL, + identifier_filter TEXT NOT NULL DEFAULT '', + config TEXT NOT NULL DEFAULT '{}' +);