diff --git a/pkg/app/registry/static/static.go b/pkg/app/registry/static/static.go index 9d1f8ebfdc4..a6914908aa6 100644 --- a/pkg/app/registry/static/static.go +++ b/pkg/app/registry/static/static.go @@ -41,6 +41,7 @@ type mimeTypeConfig struct { Name string `mapstructure:"name"` Description string `mapstructure:"description"` Icon string `mapstructure:"icon"` + DefaultApp string `mapstructure:"default_app"` } type config struct { @@ -99,7 +100,12 @@ func New(m map[string]interface{}) (app.Registry, error) { if ok { newReg.mimetypes[m].apps = append(newReg.mimetypes[m].apps, addr) } else { - newReg.mimetypes[m] = &mimeTypeIndex{apps: []string{addr}} + // set a default app provider if provided + mime, in := c.MimeTypes[m] + if !in { + return nil, errtypes.NotFound(fmt.Sprintf("mimetype %s not found in the configuration", m)) + } + newReg.mimetypes[m] = &mimeTypeIndex{apps: []string{addr}, defaultApp: mime.DefaultApp} } } }