diff --git a/api/pkg/controllers/entries_controller.go b/api/pkg/controllers/entries_controller.go index e9702fe3b..70ec62714 100644 --- a/api/pkg/controllers/entries_controller.go +++ b/api/pkg/controllers/entries_controller.go @@ -64,7 +64,7 @@ func GetEntries(c *fiber.Ctx) error { return c.Status(fiber.StatusOK).JSON(baseEntries) } -func GetHAR(c *fiber.Ctx) error { +func GetHARs(c *fiber.Ctx) error { entriesFilter := &models.HarFetchRequestBody{} order := OrderDesc if err := c.QueryParser(entriesFilter); err != nil { @@ -87,7 +87,7 @@ func GetHAR(c *fiber.Ctx) error { utils.ReverseSlice(entries) } - harsObject := map[string]*har.HAR{} + harsObject := map[string]*models.ExtendedHAR{} for _, entryData := range entries { harEntryObject := []byte(entryData.Entry) @@ -101,12 +101,15 @@ func GetHAR(c *fiber.Ctx) error { } else { var entriesHar []*har.Entry entriesHar = append(entriesHar, &harEntry) - harsObject[sourceOfEntry] = &har.HAR{ - Log: &har.Log{ + harsObject[sourceOfEntry] = &models.ExtendedHAR{ + Log: &models.ExtendedLog{ Version: "1.2", - Creator: &har.Creator{ - Name: "mizu", - Version: "0.0.1", + Creator: &models.ExtendedCreator{ + Creator: &har.Creator{ + Name: "mizu", + Version: "0.0.2", + }, + Source: sourceOfEntry, }, Entries: entriesHar, }, diff --git a/api/pkg/models/models.go b/api/pkg/models/models.go index feb1a4b90..856d1aa4c 100644 --- a/api/pkg/models/models.go +++ b/api/pkg/models/models.go @@ -2,6 +2,7 @@ package models import ( "encoding/json" + "github.com/google/martian/har" "github.com/up9inc/mizu/shared" "mizuserver/pkg/tap" "time" @@ -47,7 +48,7 @@ type EntriesFilter struct { } type HarFetchRequestBody struct { - Limit int `query:"limit" validate:"max=5000"` + Limit int `query:"limit"` } type WebSocketEntryMessage struct { @@ -80,3 +81,24 @@ func CreateWebsocketTappedEntryMessage(base *tap.OutputChannelItem) ([]byte, err } return json.Marshal(message) } + + +// ExtendedHAR is the top level object of a HAR log. +type ExtendedHAR struct { + Log *ExtendedLog `json:"log"` +} + +// ExtendedLog is the HAR HTTP request and response log. +type ExtendedLog struct { + // Version number of the HAR format. + Version string `json:"version"` + // Creator holds information about the log creator application. + Creator *ExtendedCreator `json:"creator"` + // Entries is a list containing requests and responses. + Entries []*har.Entry `json:"entries"` +} + +type ExtendedCreator struct { + *har.Creator + Source string `json:"_source"` +} \ No newline at end of file diff --git a/api/pkg/routes/public_routes.go b/api/pkg/routes/public_routes.go index c15203189..042ea54c9 100644 --- a/api/pkg/routes/public_routes.go +++ b/api/pkg/routes/public_routes.go @@ -12,7 +12,7 @@ func EntriesRoutes(fiberApp *fiber.App) { routeGroup.Get("/entries", controllers.GetEntries) // get entries (base/thin entries) routeGroup.Get("/entries/:entryId", controllers.GetEntry) // get single (full) entry - routeGroup.Get("/har", controllers.GetHAR) + routeGroup.Get("/har", controllers.GetHARs) routeGroup.Get("/resetDB", controllers.DeleteAllEntries) // get single (full) entry routeGroup.Get("/generalStats", controllers.GetGeneralStats) // get general stats about entries in DB diff --git a/cli/Makefile b/cli/Makefile index a7af9999c..835ee9142 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -1,6 +1,6 @@ FOLDER=$(GOOS).$(GOARCH) COMMIT_HASH=$(shell git rev-parse HEAD) -GIT_BRANCH=$(shell git branch --show-current) +GIT_BRANCH=$(shell git branch --show-current | tr '[:upper:]' '[:lower:]') .PHONY: help .DEFAULT_GOAL := help