From 6965585aa8cd6f398b8639484c0a23a6a1862280 Mon Sep 17 00:00:00 2001 From: Tim Scheuermann Date: Mon, 28 Nov 2022 17:35:47 +0100 Subject: [PATCH] [MM-48391] Store the server info in the export version line (#21709) --- app/export.go | 10 ++++++++++ app/imports/import_types.go | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/app/export.go b/app/export.go index fae99af054..6afd544534 100644 --- a/app/export.go +++ b/app/export.go @@ -7,11 +7,13 @@ import ( "archive/zip" "context" "encoding/json" + "fmt" "io" "net/http" "os" "path/filepath" "strings" + "time" "github.com/pkg/errors" @@ -157,9 +159,17 @@ func (a *App) exportWriteLine(w io.Writer, line *imports.LineImportData) *model. func (a *App) exportVersion(writer io.Writer) *model.AppError { version := 1 + + info := &imports.VersionInfoImportData{ + Generator: "mattermost-server", + Version: fmt.Sprintf("%s (%s, enterprise: %s)", model.CurrentVersion, model.BuildHash, model.BuildEnterpriseReady), + Created: time.Now().Format(time.RFC3339Nano), + } + versionLine := &imports.LineImportData{ Type: "version", Version: &version, + Info: info, } return a.exportWriteLine(writer, versionLine) diff --git a/app/imports/import_types.go b/app/imports/import_types.go index 0780245feb..30996df709 100644 --- a/app/imports/import_types.go +++ b/app/imports/import_types.go @@ -5,6 +5,7 @@ package imports import ( "archive/zip" + "encoding/json" "github.com/mattermost/mattermost-server/v6/model" ) @@ -22,6 +23,14 @@ type LineImportData struct { DirectPost *DirectPostImportData `json:"direct_post,omitempty"` Emoji *EmojiImportData `json:"emoji,omitempty"` Version *int `json:"version,omitempty"` + Info *VersionInfoImportData `json:"info,omitempty"` +} + +type VersionInfoImportData struct { + Generator string `json:"generator"` + Version string `json:"version"` + Created string `json:"created"` + Additional json.RawMessage `json:"additional,omitempty"` } type TeamImportData struct {