diff --git a/server/automation/envoy/store_decode.gen.go b/server/automation/envoy/store_decode.gen.go
index ec365091c..398974d8a 100644
--- a/server/automation/envoy/store_decode.gen.go
+++ b/server/automation/envoy/store_decode.gen.go
@@ -14,6 +14,7 @@ import (
"github.com/cortezaproject/corteza/server/automation/types"
"github.com/cortezaproject/corteza/server/pkg/dal"
"github.com/cortezaproject/corteza/server/pkg/envoyx"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
"github.com/pkg/errors"
)
@@ -34,6 +35,11 @@ const (
paramsKeyDAL = "dal"
)
+var (
+ // @todo temporary fix to make unused pkg/id not throw errors
+ _ = id.Next
+)
+
// Decode returns a set of envoy nodes based on the provided params
//
// StoreDecoder expects the DecodeParam of `storer` and `dal` which conform
diff --git a/server/automation/envoy/store_decode.go b/server/automation/envoy/store_decode.go
index 373c3365a..64d3c1fee 100644
--- a/server/automation/envoy/store_decode.go
+++ b/server/automation/envoy/store_decode.go
@@ -6,6 +6,7 @@ import (
"github.com/cortezaproject/corteza/server/automation/types"
"github.com/cortezaproject/corteza/server/pkg/dal"
"github.com/cortezaproject/corteza/server/pkg/envoyx"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
)
@@ -40,7 +41,7 @@ func (d StoreDecoder) makeTriggerFilter(scope *envoyx.Node, refs map[string]*env
_ = ids
_ = hh
- out.TriggerID = ids
+ out.TriggerID = id.Strings(ids...)
return
}
@@ -50,7 +51,7 @@ func (d StoreDecoder) extendedWorkflowDecoder(ctx context.Context, s store.Store
wf := b.Resource.(*types.Workflow)
filters, err := d.decodeTrigger(ctx, s, dl, types.TriggerFilter{
- WorkflowID: []uint64{wf.ID},
+ WorkflowID: id.Strings(wf.ID),
})
if err != nil {
return nil, err
diff --git a/server/automation/rest/session.go b/server/automation/rest/session.go
index ff27c8a25..6f0e7b252 100644
--- a/server/automation/rest/session.go
+++ b/server/automation/rest/session.go
@@ -2,6 +2,7 @@ package rest
import (
"context"
+
"github.com/cortezaproject/corteza/server/automation/rest/request"
"github.com/cortezaproject/corteza/server/automation/service"
"github.com/cortezaproject/corteza/server/automation/types"
@@ -9,7 +10,6 @@ import (
"github.com/cortezaproject/corteza/server/pkg/auth"
"github.com/cortezaproject/corteza/server/pkg/expr"
"github.com/cortezaproject/corteza/server/pkg/filter"
- "github.com/cortezaproject/corteza/server/pkg/payload"
"github.com/cortezaproject/corteza/server/pkg/wfexec"
)
@@ -53,9 +53,9 @@ func (ctrl Session) List(ctx context.Context, r *request.SessionList) (interface
var (
err error
f = types.SessionFilter{
- WorkflowID: payload.ParseUint64s(r.WorkflowID),
- SessionID: payload.ParseUint64s(r.SessionID),
- CreatedBy: payload.ParseUint64s(r.CreatedBy),
+ WorkflowID: r.WorkflowID,
+ SessionID: r.SessionID,
+ CreatedBy: r.CreatedBy,
EventType: r.EventType,
ResourceType: r.ResourceType,
Completed: filter.State(r.Completed),
diff --git a/server/automation/rest/trigger.go b/server/automation/rest/trigger.go
index 43516e177..e7b6114cf 100644
--- a/server/automation/rest/trigger.go
+++ b/server/automation/rest/trigger.go
@@ -2,12 +2,12 @@ package rest
import (
"context"
+
"github.com/cortezaproject/corteza/server/automation/rest/request"
"github.com/cortezaproject/corteza/server/automation/service"
"github.com/cortezaproject/corteza/server/automation/types"
"github.com/cortezaproject/corteza/server/pkg/api"
"github.com/cortezaproject/corteza/server/pkg/filter"
- "github.com/cortezaproject/corteza/server/pkg/payload"
)
type (
@@ -38,8 +38,8 @@ func (ctrl Trigger) List(ctx context.Context, r *request.TriggerList) (interface
var (
err error
f = types.TriggerFilter{
- WorkflowID: payload.ParseUint64s(r.WorkflowID),
- TriggerID: payload.ParseUint64s(r.TriggerID),
+ WorkflowID: r.WorkflowID,
+ TriggerID: r.TriggerID,
EventType: r.EventType,
ResourceType: r.ResourceType,
Labels: r.Labels,
diff --git a/server/automation/service/service.go b/server/automation/service/service.go
index 93afe58d2..17b74825e 100644
--- a/server/automation/service/service.go
+++ b/server/automation/service/service.go
@@ -2,6 +2,8 @@ package service
import (
"context"
+ "time"
+
"github.com/cortezaproject/corteza/server/automation/automation"
"github.com/cortezaproject/corteza/server/pkg/actionlog"
"github.com/cortezaproject/corteza/server/pkg/corredor"
@@ -12,7 +14,6 @@ import (
"github.com/cortezaproject/corteza/server/store"
sysTypes "github.com/cortezaproject/corteza/server/system/types"
"go.uber.org/zap"
- "time"
)
type (
diff --git a/server/automation/service/trigger.go b/server/automation/service/trigger.go
index 05bff58e2..52f5950fe 100644
--- a/server/automation/service/trigger.go
+++ b/server/automation/service/trigger.go
@@ -14,6 +14,7 @@ import (
"github.com/cortezaproject/corteza/server/pkg/eventbus"
"github.com/cortezaproject/corteza/server/pkg/expr"
"github.com/cortezaproject/corteza/server/pkg/filter"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/label"
"github.com/cortezaproject/corteza/server/pkg/logger"
"github.com/cortezaproject/corteza/server/pkg/options"
@@ -139,7 +140,7 @@ func (svc *trigger) Search(ctx context.Context, filter types.TriggerFilter) (rr
// In case stepID is 0, first trigger is returned
func (svc *trigger) SearchOnManual(ctx context.Context, workflowID, stepID uint64) (*types.Trigger, error) {
tt, _, err := svc.Search(ctx, types.TriggerFilter{
- WorkflowID: []uint64{workflowID},
+ WorkflowID: id.Strings(workflowID),
EventType: "onManual",
})
@@ -417,7 +418,7 @@ func (svc trigger) canManageTrigger(ctx context.Context, res *types.Trigger, per
func (svc *trigger) registerWorkflows(ctx context.Context, workflows ...*types.Workflow) error {
// load ALL triggers directly from store
tt, _, err := store.SearchAutomationTriggers(ctx, svc.store, types.TriggerFilter{
- WorkflowID: types.WorkflowSet(workflows).IDs(),
+ WorkflowID: id.Strings(types.WorkflowSet(workflows).IDs()...),
Deleted: filter.StateInclusive,
Disabled: filter.StateExcluded,
})
@@ -657,7 +658,7 @@ func loadWorkflowTriggers(ctx context.Context, s store.Storer, workflowID uint64
return nil, TriggerErrInvalidID()
}
- if tt, _, err = store.SearchAutomationTriggers(ctx, s, types.TriggerFilter{WorkflowID: []uint64{workflowID}}); errors.IsNotFound(err) {
+ if tt, _, err = store.SearchAutomationTriggers(ctx, s, types.TriggerFilter{WorkflowID: id.Strings(workflowID)}); errors.IsNotFound(err) {
return nil, TriggerErrNotFound()
}
diff --git a/server/automation/service/workflow.go b/server/automation/service/workflow.go
index 9f934812f..9909855b3 100644
--- a/server/automation/service/workflow.go
+++ b/server/automation/service/workflow.go
@@ -14,6 +14,7 @@ import (
"github.com/cortezaproject/corteza/server/pkg/expr"
"github.com/cortezaproject/corteza/server/pkg/filter"
"github.com/cortezaproject/corteza/server/pkg/handle"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/label"
"github.com/cortezaproject/corteza/server/pkg/options"
"github.com/cortezaproject/corteza/server/pkg/rbac"
@@ -664,7 +665,7 @@ func (svc *workflow) validateWorkflow(ctx context.Context, wf *types.Workflow) (
g, wf.Issues = Convert(svc, wf)
tt, _, err = store.SearchAutomationTriggers(ctx, svc.store, types.TriggerFilter{
- WorkflowID: types.WorkflowSet{wf}.IDs(),
+ WorkflowID: id.Strings(types.WorkflowSet{wf}.IDs()...),
Deleted: filter.StateExcluded,
Disabled: filter.StateExcluded,
})
diff --git a/server/automation/types/session.go b/server/automation/types/session.go
index ab3b34e88..b97b8599b 100644
--- a/server/automation/types/session.go
+++ b/server/automation/types/session.go
@@ -5,10 +5,11 @@ import (
"database/sql/driver"
"encoding/json"
"fmt"
- "github.com/cortezaproject/corteza/server/pkg/sql"
"sync"
"time"
+ "github.com/cortezaproject/corteza/server/pkg/sql"
+
"github.com/cortezaproject/corteza/server/pkg/auth"
"github.com/cortezaproject/corteza/server/pkg/expr"
"github.com/cortezaproject/corteza/server/pkg/filter"
@@ -79,9 +80,9 @@ type (
}
SessionFilter struct {
- SessionID []uint64 `json:"sessionID"`
- WorkflowID []uint64 `json:"workflowID"`
- CreatedBy []uint64 `json:"createdBy"`
+ SessionID []string `json:"sessionID"`
+ WorkflowID []string `json:"workflowID"`
+ CreatedBy []string `json:"createdBy"`
EventType string `json:"eventType"`
ResourceType string `json:"resourceType"`
diff --git a/server/automation/types/trigger.go b/server/automation/types/trigger.go
index dd43e2a5b..87c7f8604 100644
--- a/server/automation/types/trigger.go
+++ b/server/automation/types/trigger.go
@@ -3,10 +3,11 @@ package types
import (
"database/sql/driver"
"encoding/json"
+ "time"
+
"github.com/cortezaproject/corteza/server/pkg/expr"
"github.com/cortezaproject/corteza/server/pkg/filter"
"github.com/cortezaproject/corteza/server/pkg/sql"
- "time"
)
type (
@@ -55,8 +56,8 @@ type (
}
TriggerFilter struct {
- TriggerID []uint64 `json:"triggerID"`
- WorkflowID []uint64 `json:"workflowID"`
+ TriggerID []string `json:"triggerID"`
+ WorkflowID []string `json:"workflowID"`
EventType string `json:"eventType"`
ResourceType string `json:"resourceType"`
diff --git a/server/codegen/assets/templates/gocode/envoy/store_decode.go.tpl b/server/codegen/assets/templates/gocode/envoy/store_decode.go.tpl
index d628c2e2a..9822541cc 100644
--- a/server/codegen/assets/templates/gocode/envoy/store_decode.go.tpl
+++ b/server/codegen/assets/templates/gocode/envoy/store_decode.go.tpl
@@ -7,6 +7,7 @@ import (
"fmt"
"strings"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/dal"
"github.com/cortezaproject/corteza/server/pkg/envoyx"
"github.com/cortezaproject/corteza/server/store"
@@ -28,12 +29,16 @@ type (
}
)
-
const (
paramsKeyStorer = "storer"
paramsKeyDAL = "dal"
)
+var (
+ // @todo temporary fix to make unused pkg/id not throw errors
+ _ = id.Next
+)
+
// Decode returns a set of envoy nodes based on the provided params
//
// StoreDecoder expects the DecodeParam of `storer` and `dal` which conform
@@ -219,7 +224,7 @@ func (d StoreDecoder) make{{.expIdent}}Filter(scope *envoyx.Node, refs map[strin
_ = ids
_ = hh
- out.{{.expIdent}}ID = ids
+ out.{{.expIdent}}ID = id.Strings(ids...)
{{ if .envoy.store.handleField }}
if len(hh) > 0 {
diff --git a/server/codegen/assets/templates/gocode/envoy/store_encode.go.tpl b/server/codegen/assets/templates/gocode/envoy/store_encode.go.tpl
index 625e554e4..ed15d601c 100644
--- a/server/codegen/assets/templates/gocode/envoy/store_encode.go.tpl
+++ b/server/codegen/assets/templates/gocode/envoy/store_encode.go.tpl
@@ -489,7 +489,7 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
_ = ids
_ = hh
- out.NamespaceID = ids
+ out.NamespaceID = id.Strings(ids...)
if len(hh) > 0 {
out.Slug = hh[0]
@@ -504,7 +504,7 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
}
// Overwrite it
- out.NamespaceID = []uint64{scope.Resource.GetID()}
+ out.NamespaceID = id.Strings(scope.Resource.GetID())
return
}
diff --git a/server/compose/envoy/store_decode.gen.go b/server/compose/envoy/store_decode.gen.go
index 1263519ab..4cdeaf67a 100644
--- a/server/compose/envoy/store_decode.gen.go
+++ b/server/compose/envoy/store_decode.gen.go
@@ -14,6 +14,7 @@ import (
"github.com/cortezaproject/corteza/server/compose/types"
"github.com/cortezaproject/corteza/server/pkg/dal"
"github.com/cortezaproject/corteza/server/pkg/envoyx"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
"github.com/pkg/errors"
)
@@ -34,6 +35,11 @@ const (
paramsKeyDAL = "dal"
)
+var (
+ // @todo temporary fix to make unused pkg/id not throw errors
+ _ = id.Next
+)
+
// Decode returns a set of envoy nodes based on the provided params
//
// StoreDecoder expects the DecodeParam of `storer` and `dal` which conform
@@ -239,7 +245,7 @@ func (d StoreDecoder) makeChartFilter(scope *envoyx.Node, refs map[string]*envoy
_ = ids
_ = hh
- out.ChartID = ids
+ out.ChartID = id.Strings(ids...)
if len(hh) > 0 {
out.Handle = hh[0]
@@ -343,7 +349,7 @@ func (d StoreDecoder) makeModuleFilter(scope *envoyx.Node, refs map[string]*envo
_ = ids
_ = hh
- out.ModuleID = ids
+ out.ModuleID = id.Strings(ids...)
if len(hh) > 0 {
out.Handle = hh[0]
@@ -499,7 +505,7 @@ func (d StoreDecoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
_ = ids
_ = hh
- out.NamespaceID = ids
+ out.NamespaceID = id.Strings(ids...)
if len(hh) > 0 {
out.Slug = hh[0]
@@ -607,7 +613,7 @@ func (d StoreDecoder) makePageFilter(scope *envoyx.Node, refs map[string]*envoyx
_ = ids
_ = hh
- out.PageID = ids
+ out.PageID = id.Strings(ids...)
if len(hh) > 0 {
out.Handle = hh[0]
@@ -734,7 +740,7 @@ func (d StoreDecoder) makePageLayoutFilter(scope *envoyx.Node, refs map[string]*
_ = ids
_ = hh
- out.PageLayoutID = ids
+ out.PageLayoutID = id.Strings(ids...)
if len(hh) > 0 {
out.Handle = hh[0]
diff --git a/server/compose/envoy/store_decode.go b/server/compose/envoy/store_decode.go
index 40b9eb764..a7abc7940 100644
--- a/server/compose/envoy/store_decode.go
+++ b/server/compose/envoy/store_decode.go
@@ -9,6 +9,7 @@ import (
"github.com/cortezaproject/corteza/server/pkg/dal"
"github.com/cortezaproject/corteza/server/pkg/envoyx"
"github.com/cortezaproject/corteza/server/pkg/filter"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
)
@@ -24,7 +25,7 @@ func (d StoreDecoder) extendNamespaceFilter(scope *envoyx.Node, refs map[string]
}
// Overwrite it
- out.NamespaceID = []uint64{scope.Resource.GetID()}
+ out.NamespaceID = id.Strings(scope.Resource.GetID())
return
}
diff --git a/server/compose/envoy/store_encode.gen.go b/server/compose/envoy/store_encode.gen.go
index 57b368a30..a3b350dc4 100644
--- a/server/compose/envoy/store_encode.gen.go
+++ b/server/compose/envoy/store_encode.gen.go
@@ -1564,7 +1564,7 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
_ = ids
_ = hh
- out.NamespaceID = ids
+ out.NamespaceID = id.Strings(ids...)
if len(hh) > 0 {
out.Slug = hh[0]
@@ -1579,7 +1579,7 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
}
// Overwrite it
- out.NamespaceID = []uint64{scope.Resource.GetID()}
+ out.NamespaceID = id.Strings(scope.Resource.GetID())
return
}
diff --git a/server/compose/rest/data_privacy.go b/server/compose/rest/data_privacy.go
index 4bddb16ac..b74a6b7f8 100644
--- a/server/compose/rest/data_privacy.go
+++ b/server/compose/rest/data_privacy.go
@@ -108,7 +108,7 @@ func (ctrl *DataPrivacy) RecordList(ctx context.Context, r *request.DataPrivacyR
func (ctrl *DataPrivacy) ModuleList(ctx context.Context, r *request.DataPrivacyModuleList) (out interface{}, err error) {
var (
f = types.PrivacyModuleFilter{
- ConnectionID: payload.ParseUint64s(r.ConnectionID),
+ ConnectionID: r.ConnectionID,
}
)
diff --git a/server/compose/service/chart.go b/server/compose/service/chart.go
index b884ef8c5..fbf01d3f2 100644
--- a/server/compose/service/chart.go
+++ b/server/compose/service/chart.go
@@ -2,15 +2,17 @@ package service
import (
"context"
+ "reflect"
+ "strconv"
+
"github.com/cortezaproject/corteza/server/compose/types"
"github.com/cortezaproject/corteza/server/pkg/actionlog"
"github.com/cortezaproject/corteza/server/pkg/errors"
"github.com/cortezaproject/corteza/server/pkg/handle"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/label"
"github.com/cortezaproject/corteza/server/pkg/locale"
"github.com/cortezaproject/corteza/server/store"
- "reflect"
- "strconv"
)
type (
@@ -83,7 +85,7 @@ func (svc chart) Find(ctx context.Context, filter types.ChartFilter) (set types.
svc.store,
types.Chart{}.LabelResourceKind(),
filter.Labels,
- filter.ChartID...,
+ id.Uints(filter.ChartID...)...,
)
if err != nil {
diff --git a/server/compose/service/module.go b/server/compose/service/module.go
index 5348667f6..d66560039 100644
--- a/server/compose/service/module.go
+++ b/server/compose/service/module.go
@@ -9,6 +9,7 @@ import (
"strings"
"github.com/cortezaproject/corteza/server/compose/dalutils"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/logger"
"go.uber.org/zap"
@@ -188,7 +189,7 @@ func (svc module) Find(ctx context.Context, filter types.ModuleFilter) (set type
svc.store,
types.Module{}.LabelResourceKind(),
filter.Labels,
- filter.ModuleID...,
+ id.Uints(filter.ModuleID...)...,
)
if err != nil {
@@ -457,7 +458,7 @@ func (svc module) SearchSensitive(ctx context.Context, filter types.PrivacyModul
)
for _, connectionID := range filter.ConnectionID {
- reqConnes[connectionID] = true
+ reqConnes[id.Uint(connectionID)] = true
}
err = func() error {
@@ -1078,7 +1079,6 @@ func loadModuleField(ctx context.Context, s store.Storer, namespaceID, moduleID,
}
// loadLabeledModules loads labels on one or more modules and their fields
-//
func loadModuleLabels(ctx context.Context, s store.Labels, set ...*types.Module) error {
if len(set) == 0 {
return nil
@@ -1614,7 +1614,8 @@ func modulesByConnection(defConnID uint64, modules ...*types.Module) map[uint64]
}
// handleDalSysFieldEncodingUpdate prevents the mapping from being disabled for certain system field
-// IE. `recordID` -> `Module.Config.DAL.SystemFieldEncoding.ID`
+//
+// IE. `recordID` -> `Module.Config.DAL.SystemFieldEncoding.ID`
func handleDalSysFieldEncodingUpdate(mod *types.Module) error {
if mod.Config.DAL.SystemFieldEncoding.ID != nil && mod.Config.DAL.SystemFieldEncoding.ID.Omit {
mod.Config.DAL.SystemFieldEncoding.ID.Omit = false
diff --git a/server/compose/service/module_test.go b/server/compose/service/module_test.go
index f904ab7d3..ad788ef29 100644
--- a/server/compose/service/module_test.go
+++ b/server/compose/service/module_test.go
@@ -6,6 +6,7 @@ import (
"time"
"github.com/cortezaproject/corteza/server/pkg/dal"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/logger"
"github.com/cortezaproject/corteza/server/compose/types"
@@ -188,7 +189,7 @@ func TestModule_LabelSearch(t *testing.T) {
return out
}
- findModules = func(labels map[string]string, IDs []uint64) types.ModuleSet {
+ findModules = func(labels map[string]string, IDs []string) types.ModuleSet {
f := types.ModuleFilter{NamespaceID: ns.ID, Labels: labels, ModuleID: IDs}
set, _, err := svc.Find(ctx, f)
req.NoError(err)
@@ -214,16 +215,16 @@ func TestModule_LabelSearch(t *testing.T) {
req.Len(findModules(map[string]string{"label2": "value2"}, nil), 1)
// explicit by ID and label
- req.Len(findModules(map[string]string{"label1": "value1"}, []uint64{m2.ID}), 1)
+ req.Len(findModules(map[string]string{"label1": "value1"}, id.Strings(m2.ID)), 1)
// none with this combo
- req.Len(findModules(map[string]string{"foo": "foo"}, []uint64{m3.ID}), 0)
+ req.Len(findModules(map[string]string{"foo": "foo"}, id.Strings(m3.ID)), 0)
// one with explicit ID (regression) and nil for label filter
- req.Len(findModules(nil, []uint64{m3.ID}), 1)
+ req.Len(findModules(nil, id.Strings(m3.ID)), 1)
// one with explicit ID (regression) and empty map for label filter
- req.Len(findModules(map[string]string{}, []uint64{m3.ID}), 1)
+ req.Len(findModules(map[string]string{}, id.Strings(m3.ID)), 1)
}
diff --git a/server/compose/types/chart.go b/server/compose/types/chart.go
index 0c7bdf6f4..5c6aee26a 100644
--- a/server/compose/types/chart.go
+++ b/server/compose/types/chart.go
@@ -54,7 +54,7 @@ type (
ChartFilter struct {
NamespaceID uint64 `json:"namespaceID,string"`
- ChartID []uint64 `json:"chartID"`
+ ChartID []string `json:"chartID"`
Handle string `json:"handle"`
Name string `json:"name"`
Query string `json:"query"`
diff --git a/server/compose/types/data_privacy.go b/server/compose/types/data_privacy.go
index 16e0511b6..9af962cb0 100644
--- a/server/compose/types/data_privacy.go
+++ b/server/compose/types/data_privacy.go
@@ -29,7 +29,7 @@ type (
PrivacyModuleFilter struct {
NamespaceID uint64 `json:"-"`
- ConnectionID []uint64 `json:"connectionID,string"`
+ ConnectionID []string `json:"connectionID"`
// Standard helpers for paging and sorting
filter.Sorting
diff --git a/server/compose/types/module.go b/server/compose/types/module.go
index 1cb300b83..50581d975 100644
--- a/server/compose/types/module.go
+++ b/server/compose/types/module.go
@@ -112,7 +112,7 @@ type (
}
ModuleFilter struct {
- ModuleID []uint64 `json:"moduleID"`
+ ModuleID []string `json:"moduleID"`
NamespaceID uint64 `json:"namespaceID,string"`
Query string `json:"query"`
Handle string `json:"handle"`
diff --git a/server/compose/types/namespace.go b/server/compose/types/namespace.go
index 307b57484..965c4aa1e 100644
--- a/server/compose/types/namespace.go
+++ b/server/compose/types/namespace.go
@@ -29,7 +29,7 @@ type (
}
NamespaceFilter struct {
- NamespaceID []uint64 `json:"namespaceID"`
+ NamespaceID []string `json:"namespaceID"`
Query string `json:"query"`
Slug string `json:"slug"`
diff --git a/server/compose/types/page.go b/server/compose/types/page.go
index f7774bf2e..6e730f418 100644
--- a/server/compose/types/page.go
+++ b/server/compose/types/page.go
@@ -127,8 +127,8 @@ type (
}
PageFilter struct {
- PageID []uint64 `json:"pageID,string"`
- NamespaceID uint64 `json:"namespaceID,string"`
+ NamespaceID uint64 `json:"namespaceID"`
+ PageID []string `json:"pageID,string"`
ParentID uint64 `json:"parentID,string,omitempty"`
ModuleID uint64 `json:"moduleID,string,omitempty"`
Root bool `json:"root,omitempty"`
diff --git a/server/compose/types/page_layout.go b/server/compose/types/page_layout.go
index 9c6defd27..169dfbccc 100644
--- a/server/compose/types/page_layout.go
+++ b/server/compose/types/page_layout.go
@@ -113,7 +113,7 @@ type (
}
PageLayoutFilter struct {
- PageLayoutID []uint64 `json:"pageLayoutID,string"`
+ PageLayoutID []string `json:"pageLayoutID"`
NamespaceID uint64 `json:"namespaceID,string"`
PageID uint64 `json:"pageID,string,omitempty"`
ParentID uint64 `json:"ParentID,string,omitempty"`
diff --git a/server/discovery/rest/internal/documents/compose.go b/server/discovery/rest/internal/documents/compose.go
index e49fdba91..de7843899 100644
--- a/server/discovery/rest/internal/documents/compose.go
+++ b/server/discovery/rest/internal/documents/compose.go
@@ -3,11 +3,13 @@ package documents
import (
"context"
"fmt"
+
cmpService "github.com/cortezaproject/corteza/server/compose/service"
cmpTypes "github.com/cortezaproject/corteza/server/compose/types"
"github.com/cortezaproject/corteza/server/discovery/service"
"github.com/cortezaproject/corteza/server/pkg/errors"
"github.com/cortezaproject/corteza/server/pkg/filter"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/options"
"github.com/cortezaproject/corteza/server/pkg/rbac"
sysService "github.com/cortezaproject/corteza/server/system/service"
@@ -98,7 +100,7 @@ func (d composeResources) Namespaces(ctx context.Context, limit uint, cur string
)
if namespaceID > 0 {
- f.NamespaceID = append(f.NamespaceID, namespaceID)
+ f.NamespaceID = append(f.NamespaceID, id.String(namespaceID))
}
if f.Paging, err = filter.NewPaging(limit, cur); err != nil {
@@ -191,7 +193,7 @@ func (d composeResources) Modules(ctx context.Context, namespaceID uint64, limit
)
if moduleID > 0 {
- f.ModuleID = append(f.ModuleID, moduleID)
+ f.ModuleID = append(f.ModuleID, id.String(moduleID))
}
if f.Paging, err = filter.NewPaging(limit, cur); err != nil {
diff --git a/server/discovery/rest/internal/documents/system.go b/server/discovery/rest/internal/documents/system.go
index 4036b6259..5b7760b93 100644
--- a/server/discovery/rest/internal/documents/system.go
+++ b/server/discovery/rest/internal/documents/system.go
@@ -3,8 +3,10 @@ package documents
import (
"context"
"fmt"
+
"github.com/cortezaproject/corteza/server/discovery/service"
"github.com/cortezaproject/corteza/server/pkg/errors"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/options"
"github.com/cortezaproject/corteza/server/pkg/filter"
@@ -55,7 +57,7 @@ func (d systemResources) Users(ctx context.Context, limit uint, cur string, user
)
if userID > 0 {
- f.UserID = append(f.UserID, userID)
+ f.UserID = append(f.UserID, id.String(userID))
}
if f.Paging, err = filter.NewPaging(limit, cur); err != nil {
diff --git a/server/pkg/actionlog/types.go b/server/pkg/actionlog/types.go
index 11b15e0a4..f3cedb4ea 100644
--- a/server/pkg/actionlog/types.go
+++ b/server/pkg/actionlog/types.go
@@ -3,10 +3,11 @@ package actionlog
import (
"database/sql/driver"
"encoding/json"
- "github.com/cortezaproject/corteza/server/pkg/sql"
"strconv"
"time"
+ "github.com/cortezaproject/corteza/server/pkg/sql"
+
"github.com/cortezaproject/corteza/server/pkg/filter"
)
@@ -63,7 +64,7 @@ type (
BeforeActionID uint64 `json:"beforeActionID"`
- ActorID []uint64 `json:"actorID"`
+ ActorID []string `json:"actorID"`
Origin string `json:"origin"`
Resource string `json:"resource"`
Action string `json:"action"`
diff --git a/server/pkg/envoy/store/automation.go b/server/pkg/envoy/store/automation.go
index 831082e4b..b9eee2c16 100644
--- a/server/pkg/envoy/store/automation.go
+++ b/server/pkg/envoy/store/automation.go
@@ -8,6 +8,7 @@ import (
"github.com/cortezaproject/corteza/server/pkg/envoy"
"github.com/cortezaproject/corteza/server/pkg/envoy/resource"
"github.com/cortezaproject/corteza/server/pkg/filter"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
)
@@ -76,7 +77,7 @@ func (d *automationDecoder) decodeWorkflows(ctx context.Context, s automationSto
}
tt, _, err := s.SearchAutomationTriggers(ctx, types.TriggerFilter{
- WorkflowID: []uint64{n.ID},
+ WorkflowID: id.Strings(n.ID),
Disabled: filter.StateInclusive,
})
if err != nil {
diff --git a/server/pkg/envoy/store/automation_workflow_marshal.go b/server/pkg/envoy/store/automation_workflow_marshal.go
index afc69a23b..770e52a32 100644
--- a/server/pkg/envoy/store/automation_workflow_marshal.go
+++ b/server/pkg/envoy/store/automation_workflow_marshal.go
@@ -6,6 +6,7 @@ import (
"github.com/cortezaproject/corteza/server/automation/types"
"github.com/cortezaproject/corteza/server/pkg/envoy/resource"
"github.com/cortezaproject/corteza/server/pkg/filter"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
)
@@ -55,7 +56,7 @@ func (n *automationWorkflow) prepareTriggers(ctx context.Context, pl *payload) (
// Try to find any related triggers for this workflow
tt, _, err := store.SearchAutomationTriggers(ctx, pl.s, types.TriggerFilter{
- WorkflowID: []uint64{n.wf.ID},
+ WorkflowID: id.Strings(n.wf.ID),
Disabled: filter.StateInclusive,
})
if err != nil {
diff --git a/server/pkg/envoy/store/decoder.go b/server/pkg/envoy/store/decoder.go
index fff7d6129..179a8f8a5 100644
--- a/server/pkg/envoy/store/decoder.go
+++ b/server/pkg/envoy/store/decoder.go
@@ -5,6 +5,7 @@ import (
"github.com/cortezaproject/corteza/server/pkg/envoy"
"github.com/cortezaproject/corteza/server/pkg/envoy/resource"
+ "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/store"
"github.com/cortezaproject/corteza/server/system/types"
)
@@ -196,7 +197,7 @@ func (ux *userIndex) add(ctx context.Context, uu ...uint64) error {
}
users, _, err := store.SearchUsers(ctx, ux.s, types.UserFilter{
- UserID: filtered,
+ UserID: id.Strings(filtered...),
})
if err != nil {
return err
diff --git a/server/pkg/envoy/store/system.go b/server/pkg/envoy/store/system.go
index 50680d476..59051597a 100644
--- a/server/pkg/envoy/store/system.go
+++ b/server/pkg/envoy/store/system.go
@@ -7,6 +7,7 @@ import (
composeTypes "github.com/cortezaproject/corteza/server/compose/types"
"github.com/cortezaproject/corteza/server/pkg/envoy"
"github.com/cortezaproject/corteza/server/pkg/envoy/resource"
+ pkgid "github.com/cortezaproject/corteza/server/pkg/id"
"github.com/cortezaproject/corteza/server/pkg/rbac"
"github.com/cortezaproject/corteza/server/store"
"github.com/cortezaproject/corteza/server/system/types"
@@ -567,7 +568,7 @@ func (df *DecodeFilter) systemFromResource(rr ...string) *DecodeFilter {
templateID, err := cast.ToUint64E(id)
if err == nil && templateID > 0 {
df = df.Templates(&types.TemplateFilter{
- TemplateID: []uint64{templateID},
+ TemplateID: pkgid.Strings(templateID),
})
}
case "system:apigw-route":
@@ -581,7 +582,7 @@ func (df *DecodeFilter) systemFromResource(rr ...string) *DecodeFilter {
reportID, err := cast.ToUint64E(id)
if err == nil && reportID > 0 {
df = df.Reports(&types.ReportFilter{
- ReportID: []uint64{reportID},
+ ReportID: pkgid.Strings(reportID),
})
}
@@ -629,7 +630,7 @@ func (df *DecodeFilter) systemFromRef(rr ...*resource.Ref) *DecodeFilter {
templateID, err := cast.ToUint64E(i)
if err == nil && templateID > 0 {
df = df.Templates(&types.TemplateFilter{
- TemplateID: []uint64{templateID},
+ TemplateID: pkgid.Strings(templateID),
})
}
}
diff --git a/server/pkg/id/conv.go b/server/pkg/id/conv.go
new file mode 100644
index 000000000..8954e4aed
--- /dev/null
+++ b/server/pkg/id/conv.go
@@ -0,0 +1,31 @@
+package id
+
+import "strconv"
+
+func Strings(ii ...uint64) []string {
+ ss := make([]string, len(ii))
+ for i, v := range ii {
+ ss[i] = String(v)
+ }
+ return ss
+}
+
+func String(i uint64) string {
+ return strconv.FormatUint(i, 10)
+}
+
+func Uints(ss ...string) []uint64 {
+ uu := make([]uint64, len(ss))
+ for i, s := range ss {
+ uu[i] = Uint(s)
+ }
+ return uu
+}
+
+func Uint(s string) uint64 {
+ if s == "" {
+ return 0
+ }
+ i, _ := strconv.ParseUint(s, 10, 64)
+ return i
+}
diff --git a/server/pkg/label/label.go b/server/pkg/label/label.go
index e9e4a5c43..d1fc371d4 100644
--- a/server/pkg/label/label.go
+++ b/server/pkg/label/label.go
@@ -3,6 +3,7 @@ package label
import (
"context"
"fmt"
+
"github.com/cortezaproject/corteza/server/pkg/label/types"
"github.com/cortezaproject/corteza/server/pkg/str"
"github.com/cortezaproject/corteza/server/store"
diff --git a/server/pkg/locale/src/en/config.yaml b/server/pkg/locale/src/en/config.yaml
new file mode 100644
index 000000000..33dcc698a
--- /dev/null
+++ b/server/pkg/locale/src/en/config.yaml
@@ -0,0 +1 @@
+name: English
diff --git a/server/pkg/locale/src/en/corteza-server/auth/authorized-clients.yaml b/server/pkg/locale/src/en/corteza-server/auth/authorized-clients.yaml
new file mode 100644
index 000000000..7669c69a8
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/authorized-clients.yaml
@@ -0,0 +1,11 @@
+template:
+ title: Authorized clients
+
+ list:
+ authorized-on: Authorized on
+ buttons:
+ revoke: Revoke access
+ empty: No authorized clients found
+
+alerts:
+ removed: Client authorization removed
diff --git a/server/pkg/locale/src/en/corteza-server/auth/change-password.yaml b/server/pkg/locale/src/en/corteza-server/auth/change-password.yaml
new file mode 100644
index 000000000..0535c6f02
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/change-password.yaml
@@ -0,0 +1,16 @@
+template:
+ title: Change your password
+ form:
+ email:
+ label: E-mail
+ placeholder: email@domain.ltd
+ old-password:
+ label: Old password
+ placeholder: Enter your old password
+ new-password:
+ label: New password
+ placeholder: Enter your new password
+ button:
+ change-password: Change your password
+alerts:
+ password-change-success: Password successfully changed
diff --git a/server/pkg/locale/src/en/corteza-server/auth/create-password.yaml b/server/pkg/locale/src/en/corteza-server/auth/create-password.yaml
new file mode 100644
index 000000000..6c05f2a5c
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/create-password.yaml
@@ -0,0 +1,14 @@
+template:
+ title: Create your password
+ form:
+ email:
+ label: E-mail
+ password:
+ label: Password
+ placeholder: Enter your password
+ button:
+ create-password: Create your password
+alerts:
+ invalid-expired-password-token: Invalid or expired password create token, please repeat password create request.
+ password-create-success: Password successfully created
+ password-create-disabled: Password create disabled
diff --git a/server/pkg/locale/src/en/corteza-server/auth/error-internal.yaml b/server/pkg/locale/src/en/corteza-server/auth/error-internal.yaml
new file mode 100644
index 000000000..da92f14b0
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/error-internal.yaml
@@ -0,0 +1,2 @@
+template:
+ title: Internal error
\ No newline at end of file
diff --git a/server/pkg/locale/src/en/corteza-server/auth/inc_footer.yaml b/server/pkg/locale/src/en/corteza-server/auth/inc_footer.yaml
new file mode 100644
index 000000000..1ca52f074
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/inc_footer.yaml
@@ -0,0 +1,2 @@
+version: version {{version}}
+code-link: Access source code on
diff --git a/server/pkg/locale/src/en/corteza-server/auth/inc_header.yaml b/server/pkg/locale/src/en/corteza-server/auth/inc_header.yaml
new file mode 100644
index 000000000..1cbd3ea53
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/inc_header.yaml
@@ -0,0 +1,2 @@
+logged-in-as: You're logged-in as
+logout: logout
diff --git a/server/pkg/locale/src/en/corteza-server/auth/inc_nav.yaml b/server/pkg/locale/src/en/corteza-server/auth/inc_nav.yaml
new file mode 100644
index 000000000..df2709222
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/inc_nav.yaml
@@ -0,0 +1,7 @@
+template:
+ authorize-client: Finalize the authorization of
+ class:
+ your-profile: Your profile
+ security: Security
+ login-session: Login sessions
+ authorized-clients: Authorized clients
diff --git a/server/pkg/locale/src/en/corteza-server/auth/login.yaml b/server/pkg/locale/src/en/corteza-server/auth/login.yaml
new file mode 100644
index 000000000..224778901
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/login.yaml
@@ -0,0 +1,22 @@
+template:
+ title: Log in to continue
+ form:
+ email:
+ label: E-mail
+ placeholder: email@domain.ltd
+ password:
+ label: Password
+ placeholder: password
+ button:
+ login-and-remember: Log in and remember me
+ login: Log in
+ continue: Continue
+ links:
+ request-password-reset: Forgot your password?
+ signup: Create a new account
+ external:
+ login-with: Login with {{idp}}
+
+alerts:
+ logged-in: You are now logged-in
+ local-disabled: Local accounts disabled
diff --git a/server/pkg/locale/src/en/corteza-server/auth/logout.yaml b/server/pkg/locale/src/en/corteza-server/auth/logout.yaml
new file mode 100644
index 000000000..c5ded8b36
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/logout.yaml
@@ -0,0 +1,3 @@
+template:
+ log-out: Logout successful
+ log-in: Click here to log in
diff --git a/server/pkg/locale/src/en/corteza-server/auth/mfa-totp-disable.yaml b/server/pkg/locale/src/en/corteza-server/auth/mfa-totp-disable.yaml
new file mode 100644
index 000000000..8fa3d70cf
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/mfa-totp-disable.yaml
@@ -0,0 +1,5 @@
+template:
+ title: Disable two-factor authentication with TOTP
+ instructions: Disable by entering existing code
+ button:
+ remove: Remove
diff --git a/server/pkg/locale/src/en/corteza-server/auth/mfa-totp.yaml b/server/pkg/locale/src/en/corteza-server/auth/mfa-totp.yaml
new file mode 100644
index 000000000..eb1dbc795
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/mfa-totp.yaml
@@ -0,0 +1,30 @@
+template:
+ title: Configure two-factor authentication with TOTP
+ enforced: |
+ TOTP multi factor authentication is enforced by Corteza administrator.
+ Please configure it right away.
+
+ instructions: |
+ Corteza uses time based one time passwords (TOTP) as one of the underlying technologies for two-factor authentication. Use one of the applications listed below and type in the secret or scan the QR code.
+
+
+ This will enable additional security for your account.
+
+
+ You can use one of the following applications:
+
+ lastpass: LastPass Authenticator
+ gauth: Google Authenticator for Android or iPhone
+ authy: Authy
+
+ form:
+ title: "Complete the configuration by entering code from the authenticator application:"
+ button: Submit
+
+alerts:
+ text-MFA-enabled: Two factor authentication with TOTP enabled
+ text-MFA-disabled: Two factor authentication with TOTP disabled
+
+errors:
+ invalid-code-format: "Invalid code format"
+ invalid-code: "Invalid code"
diff --git a/server/pkg/locale/src/en/corteza-server/auth/mfa.yaml b/server/pkg/locale/src/en/corteza-server/auth/mfa.yaml
new file mode 100644
index 000000000..d65daf398
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/mfa.yaml
@@ -0,0 +1,22 @@
+template:
+ title: Multi-factor authentication
+
+ email:
+ instructions: Check your inbox and enter the received code
+ code: Code
+ verify: Verify
+ resend: Resend
+ confirmed: Email OTP confirmed
+
+ totp:
+ instructions: Check your TOTP application and enter the code you received
+ code: Code
+ confirmed: TOTP confirmed
+ verify: Verify
+
+alerts:
+ email:
+ resent: Email OTP resent
+
+ topt:
+ valid: TOTP valid
diff --git a/server/pkg/locale/src/en/corteza-server/auth/oauth2-authorize-client.yaml b/server/pkg/locale/src/en/corteza-server/auth/oauth2-authorize-client.yaml
new file mode 100644
index 000000000..a4077e0b9
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/oauth2-authorize-client.yaml
@@ -0,0 +1,14 @@
+template:
+ title: Authorize
+ form:
+ greeting-paragraph: Hello
+ question-for-client: would like to perform actions on this Corteza server on your behalf.
+ buttons:
+ allow: Allow
+ deny: Deny
+ links:
+ mistake: If this is a mistake, please log out.
+ errors:
+ invalid-user: Cannot continue with unauthorized email, visit your profile and resolve the issue.
+alerts:
+ denied: cannot authorize {{client}}, no permissions
diff --git a/server/pkg/locale/src/en/corteza-server/auth/password-reset-requested.yaml b/server/pkg/locale/src/en/corteza-server/auth/password-reset-requested.yaml
new file mode 100644
index 000000000..82163d2eb
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/password-reset-requested.yaml
@@ -0,0 +1,8 @@
+template:
+ title: Password reset requested
+ instructions: If the email you entered is found in our database, you'll receive a password reset link to your inbox in a few moments.
+ links: Return to the login page
+alert:
+ invalid-expired-password-token: Invalid or expired password reset token, please repeat password reset request.
+ password-reset-success: Password successfully reset
+ password-reset-disabled: Password reset disabled
diff --git a/server/pkg/locale/src/en/corteza-server/auth/pending-email-confirmation.yaml b/server/pkg/locale/src/en/corteza-server/auth/pending-email-confirmation.yaml
new file mode 100644
index 000000000..42fe520fd
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/pending-email-confirmation.yaml
@@ -0,0 +1,4 @@
+template:
+ title: Confirm your email
+ instructions: You should receive email confirmation link to your inbox in a few moments
+ links: Create new account or log in
diff --git a/server/pkg/locale/src/en/corteza-server/auth/profile.yaml b/server/pkg/locale/src/en/corteza-server/auth/profile.yaml
new file mode 100644
index 000000000..f2dd41c15
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/profile.yaml
@@ -0,0 +1,30 @@
+template:
+ title: Your profile
+ form:
+ email:
+ label: Email
+ placeholder: email@domain.ltd
+ resend-confirmation-link: Email is not verified, resend confirmation link.
+ name:
+ label: Full name
+ placeholder: Your full name
+ handle:
+ label: Handle
+ placeholder: Short name, nickname or handle
+ avatar:
+ label: Avatar
+ delete: Delete
+ upload: Upload avatar
+ avatar-initial:
+ label: Avatar initial
+ color: Avatar text color
+ background-color: Avatar background color
+ preferred-language:
+ label: Preferred language
+ buttons:
+ submit: Update profile
+alerts:
+ profile-updated: Profile successfully updated
+ profile-update-fail: Could not update profile due to input errors
+ profile-avatar-uploaded: Profile avatar successfully uploaded
+ profile-avatar-deleted: Profile avatar successfully deleted
diff --git a/server/pkg/locale/src/en/corteza-server/auth/request-password-reset.yaml b/server/pkg/locale/src/en/corteza-server/auth/request-password-reset.yaml
new file mode 100644
index 000000000..272810cb4
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/request-password-reset.yaml
@@ -0,0 +1,9 @@
+template:
+ title: Request password reset link
+ form:
+ email:
+ label: E-mail
+ placeholder: email@domain.ltd
+ buttons:
+ request: Request password reset link via email
+ links: Return to the login page
diff --git a/server/pkg/locale/src/en/corteza-server/auth/reset-password.yaml b/server/pkg/locale/src/en/corteza-server/auth/reset-password.yaml
new file mode 100644
index 000000000..c3c2a73bd
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/reset-password.yaml
@@ -0,0 +1,11 @@
+template:
+ title: Reset your password
+ form:
+ email:
+ label: E-mail
+ placeholder: email@domain.ltd
+ new-password:
+ label: New password
+ placeholder: Set new password
+ buttons:
+ change-password: Change your password
diff --git a/server/pkg/locale/src/en/corteza-server/auth/security.yaml b/server/pkg/locale/src/en/corteza-server/auth/security.yaml
new file mode 100644
index 000000000..2d88912c7
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/security.yaml
@@ -0,0 +1,27 @@
+template:
+ title: Security
+
+ password:
+ title: Password
+ change-link: Change your password
+
+ mfa:
+ title: Multi-factor authentication
+ totp:
+ title: Additional security with mobile app (time-based one-time-password)
+ enforced: Configured and required on login
+ disabled: Currently disabled
+ configure: Configure
+ disable: Disable
+
+ email:
+ title: Additional security with one-time-password over email
+ enforced: Enabled and required on login
+ disabled: Currently disabled
+ enable: Configure
+ disable: Disable
+
+ all-disabled: All MFA methods are currently disabled. Ask your administrator to enable them.
+
+alerts:
+ topt-disabled: Two factor authentication with TOTP disabled
diff --git a/server/pkg/locale/src/en/corteza-server/auth/sessions.yaml b/server/pkg/locale/src/en/corteza-server/auth/sessions.yaml
new file mode 100644
index 000000000..b09a5388c
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/sessions.yaml
@@ -0,0 +1,22 @@
+template:
+ title: Your session
+
+ list:
+ current: Current session
+ authorized-on: Authorized on
+ same-machine: This machine
+ ip-address: IP Address
+ same-browser: This browser
+ browser: Browser
+
+ expires: Expires
+ expired: Expired
+ today: Today
+ tomorrow: In 1 day
+ soon: In {{days}} days
+
+ delete-all: Logout from everywhere
+
+alerts:
+ session-deleted: Session deleted
+ delete-sessions-but-current: All but current login sessions deleted
diff --git a/server/pkg/locale/src/en/corteza-server/auth/signup.yaml b/server/pkg/locale/src/en/corteza-server/auth/signup.yaml
new file mode 100644
index 000000000..b9fa25de1
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/auth/signup.yaml
@@ -0,0 +1,24 @@
+template:
+ title: Sign up
+ form:
+ email:
+ label: E-mail
+ placeholder: email@domain.ltd
+ password:
+ label: Password
+ placeholder: Password
+ name:
+ label: Full name
+ placeholder: Your full name
+ nickname:
+ label: Short name, nickname or handle
+ placeholder: Short name, nickname or handle
+ button:
+ sign-up: Submit
+ log-in: Already have an account? Log in
+
+alerts:
+ signup-successful: Sign-up successful
+ email-confirmed-logged-in: Email address confirmed, you're now logged-in.
+ invalid-expired-token: Invalid or expired email confirmation token, please resend confirmation request.
+ signup-disabled: Signup disabled
diff --git a/server/pkg/locale/src/en/corteza-server/automation/access-control.yaml b/server/pkg/locale/src/en/corteza-server/automation/access-control.yaml
new file mode 100644
index 000000000..bc5de2a77
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/automation/access-control.yaml
@@ -0,0 +1,2 @@
+errors:
+ notAllowedToSetPermissions: not allowed to set permissions
diff --git a/server/pkg/locale/src/en/corteza-server/automation/session.yaml b/server/pkg/locale/src/en/corteza-server/automation/session.yaml
new file mode 100644
index 000000000..02e4732b4
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/automation/session.yaml
@@ -0,0 +1,8 @@
+errors:
+ invalidID: invalid ID
+ notAllowedToDelete: not allowed to delete this session
+ notAllowedToManage: not allowed to manage session's workflow
+ notAllowedToRead: not allowed to read this session
+ notAllowedToSearch: not allowed to search or list sessions
+ notFound: session not found
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/automation/trigger.yaml b/server/pkg/locale/src/en/corteza-server/automation/trigger.yaml
new file mode 100644
index 000000000..082985813
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/automation/trigger.yaml
@@ -0,0 +1,10 @@
+errors:
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create triggers
+ notAllowedToDelete: not allowed to delete this trigger
+ notAllowedToRead: not allowed to read this trigger
+ notAllowedToSearch: not allowed to search or list triggers
+ notAllowedToUndelete: not allowed to undelete this trigger
+ notAllowedToUpdate: not allowed to update this trigger
+ notFound: trigger not found
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/automation/workflow.yaml b/server/pkg/locale/src/en/corteza-server/automation/workflow.yaml
new file mode 100644
index 000000000..d460c3ee0
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/automation/workflow.yaml
@@ -0,0 +1,16 @@
+errors:
+ disabled: disabled workflow or trigger
+ handleNotUnique: workflow handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create workflows
+ notAllowedToDelete: not allowed to delete this workflow
+ notAllowedToExecute: not allowed to execute this workflow
+ notAllowedToExecuteCorredorStep: not allowed to run corredorExec function, corredor is disabled
+ notAllowedToRead: not allowed to read this workflow
+ notAllowedToSearch: not allowed to search or list workflows
+ notAllowedToUndelete: not allowed to undelete this workflow
+ notAllowedToUpdate: not allowed to update this workflow
+ notFound: workflow not found
+ staleData: stale data
+ unknownWorkflowStep: unknown workflow step
diff --git a/server/pkg/locale/src/en/corteza-server/compose/access-control.yaml b/server/pkg/locale/src/en/corteza-server/compose/access-control.yaml
new file mode 100644
index 000000000..bc5de2a77
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/access-control.yaml
@@ -0,0 +1,2 @@
+errors:
+ notAllowedToSetPermissions: not allowed to set permissions
diff --git a/server/pkg/locale/src/en/corteza-server/compose/attachment.yaml b/server/pkg/locale/src/en/corteza-server/compose/attachment.yaml
new file mode 100644
index 000000000..ebbb05293
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/attachment.yaml
@@ -0,0 +1,29 @@
+errors:
+ failedToExtractMimeType: could not extract mime type
+ failedToProcessImage: could not process image
+ failedToStoreFile: could not extract store file
+ invalidID: invalid ID
+ invalidModuleID: invalid module ID
+ invalidNamespaceID: invalid namespace ID
+ invalidPageID: invalid page ID
+ invalidRecordID: invalid record ID
+ moduleNotFound: module not found
+ namespaceNotFound: namespace not found
+ notAllowedToCreate: not allowed to create attachments
+ notAllowedToCreateEmptyAttachment: not allowed to create empty attachments
+ notAllowedToCreateRecords: not allowed to create records
+ notAllowedToListAttachments: not allowed to list attachments
+ notAllowedToRead: not allowed to read this module
+ notAllowedToReadNamespace: not allowed to read this namespace
+ notAllowedToReadPage: not allowed to read this page
+ notAllowedToReadRecord: not allowed to read this record
+ notAllowedToSearch: not allowed to search or list modules
+ notAllowedToUpdateNamespace: not allowed to update this namespace
+ notAllowedToUpdatePage: not allowed to update this page
+ notAllowedToUpdateRecord: not allowed to update this record
+ notFound: attachment not found
+ pageNotFound: page not found
+ recordNotFound: record not found
+ invalidModuleField: invalid module field
+ tooLarge: uploaded file is too large
+ notAllowedToUploadThisType: not allowed to upload this type of file
diff --git a/server/pkg/locale/src/en/corteza-server/compose/chart.yaml b/server/pkg/locale/src/en/corteza-server/compose/chart.yaml
new file mode 100644
index 000000000..964d665bd
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/chart.yaml
@@ -0,0 +1,16 @@
+errors:
+ handleNotUnique: handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ invalidNamespaceID: invalid or missing namespace ID
+ moduleNotFound: module does not exist
+ namespaceNotFound: namespace does not exist
+ notAllowedToCreate: not allowed to create charts
+ notAllowedToDelete: not allowed to delete this chart
+ notAllowedToRead: not allowed to read this chart
+ notAllowedToReadNamespace: not allowed to read this namespace
+ notAllowedToSearch: not allowed to search or list charts
+ notAllowedToUndelete: not allowed to undelete this chart
+ notAllowedToUpdate: not allowed to update this chart
+ notFound: chart does not exist
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/compose/field.yaml b/server/pkg/locale/src/en/corteza-server/compose/field.yaml
new file mode 100644
index 000000000..487023d0a
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/field.yaml
@@ -0,0 +1,14 @@
+system:
+ ID: Record ID
+ moduleID: Module ID
+ namespaceID: Namespace ID
+ revision: Record revision
+ meta: Meta data
+ recordID: Record ID
+ createdAt: Created at
+ createdBy: Created by
+ deletedAt: Deleted at
+ deletedBy: Deleted by
+ ownedBy: Owned by
+ updatedAt: Updated at
+ updatedBy: Updated by
diff --git a/server/pkg/locale/src/en/corteza-server/compose/module.yaml b/server/pkg/locale/src/en/corteza-server/compose/module.yaml
new file mode 100644
index 000000000..82def8ae0
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/module.yaml
@@ -0,0 +1,18 @@
+errors:
+ handleNotUnique: handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ invalidNamespaceID: invalid or missing namespace ID
+ nameNotUnique: name not unique
+ fieldNameReserved: field name reserved
+ namespaceNotFound: namespace does not exist
+ notAllowedToCreate: not allowed to create modules
+ notAllowedToDelete: not allowed to delete this module
+ notAllowedToListModules: not allowed to list modules
+ notAllowedToRead: not allowed to read this module
+ notAllowedToReadNamespace: not allowed to read this namespace
+ notAllowedToSearch: not allowed to search or list modules
+ notAllowedToUndelete: not allowed to undelete this module
+ notAllowedToUpdate: not allowed to update this module
+ notFound: module does not exist
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/compose/namespace.yaml b/server/pkg/locale/src/en/corteza-server/compose/namespace.yaml
new file mode 100644
index 000000000..4c3d016a1
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/namespace.yaml
@@ -0,0 +1,16 @@
+errors:
+ handleNotUnique: handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create namespaces
+ notAllowedToDelete: not allowed to delete this namespace
+ notAllowedToRead: not allowed to read this namespace
+ notAllowedToSearch: not allowed to search or list namespaces
+ notAllowedToUndelete: not allowed to undelete this namespace
+ notAllowedToUpdate: not allowed to update this namespace
+ notFound: namespace does not exist
+ staleData: stale data
+ unsupportedExportFormat: unsupported export format
+ unsupportedImportFormat: unsupported import format
+ importMissingNamespace: the import source does not contain a namespace definition
+ cloneMultiple: not allowed to clone multiple namespaces at once
diff --git a/server/pkg/locale/src/en/corteza-server/compose/notifications.yaml b/server/pkg/locale/src/en/corteza-server/compose/notifications.yaml
new file mode 100644
index 000000000..176304991
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/notifications.yaml
@@ -0,0 +1,5 @@
+errors:
+ failedToDownloadAttachment: 'could not download attachment from {attachmentURL}: {err}'
+ failedToLoadUser: could not load user for {recipient}
+ invalidReceipientFormat: invalid recipient format ({recipient})
+ noRecipients: cannot send email message without recipients
diff --git a/server/pkg/locale/src/en/corteza-server/compose/page.yaml b/server/pkg/locale/src/en/corteza-server/compose/page.yaml
new file mode 100644
index 000000000..481b21c50
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/page.yaml
@@ -0,0 +1,17 @@
+errors:
+ handleNotUnique: handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ invalidNamespaceID: invalid or missing namespace ID
+ moduleNotFound: module does not exist
+ namespaceNotFound: namespace does not exist
+ notAllowedToCreate: not allowed to create pages
+ notAllowedToDelete: not allowed to delete this page
+ notAllowedToListPages: not allowed to list pages
+ notAllowedToRead: not allowed to read this page
+ notAllowedToReadNamespace: not allowed to read this namespace
+ notAllowedToSearch: not allowed to search or list pages
+ notAllowedToUndelete: not allowed to undelete this page
+ notAllowedToUpdate: not allowed to update this page
+ notFound: page does not exist
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/compose/record-field.yaml b/server/pkg/locale/src/en/corteza-server/compose/record-field.yaml
new file mode 100644
index 000000000..5f5f4c924
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/record-field.yaml
@@ -0,0 +1,6 @@
+errors:
+ empty: This field is required
+ invalidValue: Invalid field value
+ invalidRef: Invalid field reference
+ duplicateValueInSet: This value already exists in list
+ duplicateValue: The value "{{value}}" already exists in another record
diff --git a/server/pkg/locale/src/en/corteza-server/compose/record.yaml b/server/pkg/locale/src/en/corteza-server/compose/record.yaml
new file mode 100644
index 000000000..628f7e21d
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/compose/record.yaml
@@ -0,0 +1,24 @@
+errors:
+ fieldNotFound: no such field {field}
+ importSessionAlreadActive: import session already active
+ invalidID: invalid ID
+ invalidModuleID: invalid or missing module ID
+ invalidNamespaceID: invalid or missing namespace ID
+ invalidReferenceFormat: invalid reference format
+ invalidValueStructure: more than one value for a single-value field {field}
+ moduleNotFoundModule: module not found
+ namespaceNotFound: namespace not found
+ notAllowedToChangeFieldValue: not allowed to change value of field {field}
+ notAllowedToCreate: not allowed to create records
+ notAllowedToDelete: not allowed to delete this record
+ notAllowedToListRecords: not allowed to list records
+ notAllowedToRead: not allowed to read this record
+ notAllowedToReadModule: not allowed to read module
+ notAllowedToReadNamespace: not allowed to read this namespace
+ notAllowedToSearch: not allowed to search or list records
+ notAllowedToUndelete: not allowed to undelete this record
+ notAllowedToUpdate: not allowed to update this record
+ notFound: record not found
+ staleData: stale data
+ unknownBulkOperation: unknown bulk operation {bulkOperation}
+ valueInput: invalid record value input
diff --git a/server/pkg/locale/src/en/corteza-server/federation/access-control.yaml b/server/pkg/locale/src/en/corteza-server/federation/access-control.yaml
new file mode 100644
index 000000000..bc5de2a77
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/access-control.yaml
@@ -0,0 +1,2 @@
+errors:
+ notAllowedToSetPermissions: not allowed to set permissions
diff --git a/server/pkg/locale/src/en/corteza-server/federation/exposed-module.yaml b/server/pkg/locale/src/en/corteza-server/federation/exposed-module.yaml
new file mode 100644
index 000000000..329f5b5ad
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/exposed-module.yaml
@@ -0,0 +1,11 @@
+errors:
+ composeModuleNotFound: compose module not found
+ composeNamespaceNotFound: compose namespace not found
+ invalidID: invalid ID
+ nodeNotFound: node does not exist
+ notAllowedToCreate: not allowed to create modules
+ notAllowedToManage: not allowed to manage this module
+ notFound: module does not exist
+ notUnique: node not unique
+ requestParametersInvalid: request parameters invalid
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/federation/module-mapping.yaml b/server/pkg/locale/src/en/corteza-server/federation/module-mapping.yaml
new file mode 100644
index 000000000..17d1dd18f
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/module-mapping.yaml
@@ -0,0 +1,8 @@
+errors:
+ composeModuleNotFound: compose module not found
+ composeNamespaceNotFound: compose namespace not found
+ federationModuleNotFound: federation module not found
+ moduleMappingExists: module mapping already exists
+ nodeNotFound: node does not exist
+ notAllowedToMap: not allowed to map this module
+ notFound: module mapping does not exist
diff --git a/server/pkg/locale/src/en/corteza-server/federation/node-sync.yaml b/server/pkg/locale/src/en/corteza-server/federation/node-sync.yaml
new file mode 100644
index 000000000..3f0396c1f
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/node-sync.yaml
@@ -0,0 +1,3 @@
+errors:
+ nodeNotFound: node does not exist
+ notFound: node_sync does not exist
diff --git a/server/pkg/locale/src/en/corteza-server/federation/node.yaml b/server/pkg/locale/src/en/corteza-server/federation/node.yaml
new file mode 100644
index 000000000..bfec4f420
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/node.yaml
@@ -0,0 +1,10 @@
+errors:
+ notAllowedToCreate: not allowed to create nodes
+ notAllowedToManage: not allowed to manage this node
+ notAllowedToPair: not allowed to pair this node
+ notAllowedToSearch: not allowed to search or list nodes
+ notFound: node does not exist
+ pairingTokenInvalid: pairing token invalid
+ pairingURIInvalid: 'pairing URI invalid: {err}'
+ pairingURISourceIDInvalid: pairing URI without source node ID
+ pairingURITokenInvalid: pairing URI with invalid pairing token
diff --git a/server/pkg/locale/src/en/corteza-server/federation/shared-module.yaml b/server/pkg/locale/src/en/corteza-server/federation/shared-module.yaml
new file mode 100644
index 000000000..3506d8e3a
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/federation/shared-module.yaml
@@ -0,0 +1,10 @@
+errors:
+ federationSyncStructureChanged: module structure changed
+ invalidID: invalid ID
+ nodeNotFound: node does not exist
+ notAllowedToCreate: not allowed to create modules
+ notAllowedToManage: not allowed to manage this module
+ notAllowedToMap: not allowed to map this module
+ notFound: module does not exist
+ notUnique: node not unique
+ staleData: stale data
diff --git a/server/pkg/locale/src/en/corteza-server/internal/auth.yaml b/server/pkg/locale/src/en/corteza-server/internal/auth.yaml
new file mode 100644
index 000000000..4f20bb1b2
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/internal/auth.yaml
@@ -0,0 +1,3 @@
+errors:
+ unauthorized: unauthorized
+ unauthorizedScope: unauthorized scope
diff --git a/server/pkg/locale/src/en/corteza-server/system/access-control.yaml b/server/pkg/locale/src/en/corteza-server/system/access-control.yaml
new file mode 100644
index 000000000..bc5de2a77
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/access-control.yaml
@@ -0,0 +1,2 @@
+errors:
+ notAllowedToSetPermissions: not allowed to set permissions
diff --git a/server/pkg/locale/src/en/corteza-server/system/apigw-filter.yaml b/server/pkg/locale/src/en/corteza-server/system/apigw-filter.yaml
new file mode 100644
index 000000000..b77f0d152
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/apigw-filter.yaml
@@ -0,0 +1,11 @@
+errors:
+ asyncRouteTooManyProcessers: processer already exists for this async route
+ asyncRouteTooManyAfterFilters: no after filters are allowd for this async route
+ invalidID: invalid ID
+ invalidRoute: invalid route
+ notAllowedToCreate: not allowed to create a filter
+ notAllowedToDelete: not allowed to delete this filter
+ notAllowedToRead: not allowed to read this filter
+ notAllowedToUndelete: not allowed to undelete this filter
+ notAllowedToUpdate: not allowed to update this filter
+ notFound: filter not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/apigw-route.yaml b/server/pkg/locale/src/en/corteza-server/system/apigw-route.yaml
new file mode 100644
index 000000000..00ff98bfe
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/apigw-route.yaml
@@ -0,0 +1,13 @@
+errors:
+ alreadyExists: route by that endpoint already exists
+ existsEndpoint: route with this endpoint already exists
+ invalidEndpoint: invalid endpoint
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create a route
+ notAllowedToDelete: not allowed to delete this route
+ notAllowedToExec: not allowed to execute this route
+ notAllowedToRead: not allowed to read this route
+ notAllowedToUndelete: not allowed to undelete this route
+ notAllowedToUpdate: not allowed to update this route
+ notAllowedToSearch: not allowed to list or search routes
+ notFound: route not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/application.yaml b/server/pkg/locale/src/en/corteza-server/system/application.yaml
new file mode 100644
index 000000000..e32c663e6
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/application.yaml
@@ -0,0 +1,11 @@
+errors:
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create applications
+ notAllowedToDelete: not allowed to delete this application
+ notAllowedToManageFlag: not allowed to manage flags for applications
+ notAllowedToManageFlagGlobal: not allowed to manage global flags for applications
+ notAllowedToRead: not allowed to read this application
+ notAllowedToSearch: not allowed to search or list applications
+ notAllowedToUndelete: not allowed to undelete this application
+ notAllowedToUpdate: not allowed to update this application
+ notFound: application not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/attachment.yaml b/server/pkg/locale/src/en/corteza-server/system/attachment.yaml
new file mode 100644
index 000000000..172e818f3
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/attachment.yaml
@@ -0,0 +1,9 @@
+errors:
+ failedToExtractMimeType: could not extract mime type
+ failedToProcessImage: could not process image
+ failedToStoreFile: could not extract store file
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create attachments
+ notAllowedToCreateEmptyAttachment: not allowed to create empty attachments
+ notAllowedToListAttachments: not allowed to list attachments
+ notFound: attachment not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/auth-client.yaml b/server/pkg/locale/src/en/corteza-server/system/auth-client.yaml
new file mode 100644
index 000000000..222bdc94b
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/auth-client.yaml
@@ -0,0 +1,14 @@
+errors:
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create auth clients
+ notAllowedToDelete: not allowed to delete this auth client
+ notAllowedToRead: not allowed to read this auth client
+ notAllowedToSearch: not allowed to search or list auth clients
+ notAllowedToUndelete: not allowed to undelete this auth client
+ notAllowedToUpdate: not allowed to update this auth client
+ notFound: auth client not found
+ unableToChangeDefaultClientHandle: unable to change the handle of the default auth client
+ unableToDeleteDefaultClient: unable to delete the default auth client
+ unableToDisableDefaultClient: unable to disable the default auth client
+ unknownGrantType: unknown grant type
+ unknownScope: unknown scope
diff --git a/server/pkg/locale/src/en/corteza-server/system/auth.yaml b/server/pkg/locale/src/en/corteza-server/system/auth.yaml
new file mode 100644
index 000000000..0cbd209be
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/auth.yaml
@@ -0,0 +1,25 @@
+errors:
+ credentialsLinkedToInvalidUser: credentials {credentials.kind} linked to disabled or deleted user {user}
+ disabledMFAWithEmailOTP: multi factor authentication with email OTP is disabled
+ disabledMFAWithTOTP: multi factor authentication with TOTP is disabled
+ enforcedMFAWithEmailOTP: OTP over email is enforced and cannot be disabled
+ enforcedMFAWithTOTP: TOTP is enforced and cannot be disabled
+ externalDisabledByConfig: external authentication (using external authentication provider) is disabled
+ failedUnconfirmedEmail: system requires confirmed email before logging in
+ internalLoginDisabledByConfig: internal login (username/password) is disabled
+ internalSignupDisabledByConfig: internal sign-up (username/password) is disabled
+ invalidCredentials: invalid username and password combination
+ invalidEmailFormat: invalid email
+ invalidEmailOTP: invalid code
+ invalidHandle: invalid handle
+ invalidTOTP: invalid code
+ invalidToken: invalid token
+ notAllowedToConfigureTOTP: not allowed to configure TOTP
+ notAllowedToImpersonate: not allowed to impersonate this user
+ notAllowedToRemoveTOTP: not allowed to remove TOTP
+ passwodResetFailedOldPasswordCheckFailed: failed to change password, old password does not match
+ passwordChangeFailedForUnknownUser: failed to change password for the unknown user
+ passwordNotSecure: provided password is not secure; use longer password with more special characters
+ passwordResetDisabledByConfig: password reset is disabled
+ profileWithoutValidEmail: external authentication provider returned profile without valid email
+ unconfiguredTOTP: TOTP not configured
diff --git a/server/pkg/locale/src/en/corteza-server/system/credentials.yaml b/server/pkg/locale/src/en/corteza-server/system/credentials.yaml
new file mode 100644
index 000000000..b23eeacf7
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/credentials.yaml
@@ -0,0 +1,4 @@
+errors:
+ notFound: credentials not found
+ invalidID: invalid ID
+ notAllowedToManage: not allowed to manage credentials for this user
diff --git a/server/pkg/locale/src/en/corteza-server/system/dal-connection.yaml b/server/pkg/locale/src/en/corteza-server/system/dal-connection.yaml
new file mode 100644
index 000000000..b5af95ef9
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/dal-connection.yaml
@@ -0,0 +1,13 @@
+errors:
+ notFound: connection not found
+ invalidID: invalid ID
+ invalidEndpoint: invalid endpoint
+ existsEndpoint: connection with this DNS already exists
+ alreadyExists: connection by that DNS already exists
+ notAllowedToCreate: not allowed to create a connection
+ notAllowedToRead: not allowed to read this connection
+ notAllowedToSearch: not allowed to list or search connections
+ notAllowedToUpdate: not allowed to update this connection
+ notAllowedToDelete: not allowed to delete this connection
+ notAllowedToUndelete: not allowed to undelete this connection
+ notAllowedToExec: not allowed to execute this connection
diff --git a/server/pkg/locale/src/en/corteza-server/system/dal-sensitivity-level.yaml b/server/pkg/locale/src/en/corteza-server/system/dal-sensitivity-level.yaml
new file mode 100644
index 000000000..0dec511a5
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/dal-sensitivity-level.yaml
@@ -0,0 +1,9 @@
+errors:
+ alreadyExists: sensitivity level by that DNS already exists
+ existsEndpoint: sensitivity level with this DNS already exists
+ generic: failed to complete request due to internal error
+ invalidEndpoint: invalid endpoint
+ invalidID: invalid ID
+ notAllowedToManage: not allowed to manage sensitivity level
+ notFound: sensitivity level not found
+ deleteInUse: cannot delete in use sensitivity levels
diff --git a/server/pkg/locale/src/en/corteza-server/system/data-privacy.yaml b/server/pkg/locale/src/en/corteza-server/system/data-privacy.yaml
new file mode 100644
index 000000000..e4bbd3035
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/data-privacy.yaml
@@ -0,0 +1,9 @@
+errors:
+ notFound: data privacy request not found
+ invalidID: invalid ID
+ invalidKind: invalid kind
+ invalidStatus: invalid status
+ notAllowedToRead: not allowed to read this data privacy request
+ notAllowedToSearch: not allowed to search or list data privacy request
+ notAllowedToCreate: not allowed to create data privacy request
+ notAllowedToApprove: not allowed to approve/reject data privacy request
diff --git a/server/pkg/locale/src/en/corteza-server/system/queue.yaml b/server/pkg/locale/src/en/corteza-server/system/queue.yaml
new file mode 100644
index 000000000..727c4e9ae
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/queue.yaml
@@ -0,0 +1,13 @@
+errors:
+ alreadyExists: queue by that name already exists
+ invalidConsumer: invalid consumer
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create a queue
+ notAllowedToDelete: not allowed to delete this queue
+ notAllowedToRead: not allowed to read this queue
+ notAllowedToReadFrom: not allowed to read messages from this queue
+ notAllowedToSearch: not allowed to search or list queues
+ notAllowedToUndelete: not allowed to undelete this queue
+ notAllowedToUpdate: not allowed to update this queue
+ notAllowedToWriteTo: not allowed to add messages to this queue
+ notFound: queue not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/reminder.yaml b/server/pkg/locale/src/en/corteza-server/system/reminder.yaml
new file mode 100644
index 000000000..4226f0a7a
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/reminder.yaml
@@ -0,0 +1,6 @@
+errors:
+ invalidID: invalid ID
+ notAllowedToAssign: not allowed to assign reminders to other users
+ notAllowedToDismiss: not allowed to dismiss reminders of other users
+ notAllowedToRead: not allowed to read reminders of other users
+ notFound: reminder not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/report.yaml b/server/pkg/locale/src/en/corteza-server/system/report.yaml
new file mode 100644
index 000000000..741fc545f
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/report.yaml
@@ -0,0 +1,12 @@
+errors:
+ invalidConfiguration: Invalid report configuration
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create reports
+ notAllowedToDelete: not allowed to delete this report
+ notAllowedToListReports: not allowed to list reports
+ notAllowedToRead: not allowed to read this report
+ notAllowedToRun: not allowed to run this report
+ notAllowedToSearch: not allowed to list or search reports
+ notAllowedToUndelete: not allowed to undelete this report
+ notAllowedToUpdate: not allowed to update this report
+ notFound: report not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/role.yaml b/server/pkg/locale/src/en/corteza-server/system/role.yaml
new file mode 100644
index 000000000..ac307dabf
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/role.yaml
@@ -0,0 +1,15 @@
+errors:
+ handleNotUnique: role handle not unique
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ nameNotUnique: role name not unique
+ notAllowedToArchive: not allowed to archive this role
+ notAllowedToCreate: not allowed to create roles
+ notAllowedToDelete: not allowed to delete this role
+ notAllowedToManageMembers: not allowed to manage role members
+ notAllowedToRead: not allowed to read this role
+ notAllowedToSearch: not allowed to search or list roles
+ notAllowedToUnarchive: not allowed to unarchive this role
+ notAllowedToUndelete: not allowed to undelete this role
+ notAllowedToUpdate: not allowed to update this role
+ notFound: role not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/settings.yaml b/server/pkg/locale/src/en/corteza-server/system/settings.yaml
new file mode 100644
index 000000000..edd638125
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/settings.yaml
@@ -0,0 +1,8 @@
+errors:
+ notAllowedToRead: not allowed to read this setting
+ notAllowedToManage: not allowed to manage this setting
+ invalidPasswordMinLength: password constraint minimum length should be at least 8 characters
+ invalidPasswordMinUpperCase: password constraint minimum upper case count should not be a negative number
+ invalidPasswordMinLowerCase: password constraint minimum lower case count should not be a negative number
+ invalidPasswordMinNumCount: password constraint minimum number count should not be a negative number
+ invalidPasswordMinSpecialCharCount: password constraint minimum special character count should not be a negative number
diff --git a/server/pkg/locale/src/en/corteza-server/system/sink.yaml b/server/pkg/locale/src/en/corteza-server/system/sink.yaml
new file mode 100644
index 000000000..33a129fb7
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/sink.yaml
@@ -0,0 +1,17 @@
+errors:
+ badSinkParamEncoding: bad encoding of sink parameters
+ contentLengthExceedsMaxAllowedSize: content length exceeds max size limit
+ failedToCreateEvent: failed to create sink event from request
+ failedToProcess: failed to process request
+ failedToRespond: failed to respond to request
+ failedToSign: 'could not sign request params: {err}'
+ invalidContentType: invalid content-type header
+ invalidHttpMethod: invalid HTTP method
+ invalidPath: invalid path
+ invalidSignature: invalid signature
+ invalidSignatureParam: invalid sink signature parameter
+ invalidSinkRequestUrlParams: invalid sink request url params
+ misplacedSignature: signature misplaced
+ missingSignature: missing sink signature parameter
+ processingError: sink request process error
+ signatureExpired: signature expired
diff --git a/server/pkg/locale/src/en/corteza-server/system/statistics.yaml b/server/pkg/locale/src/en/corteza-server/system/statistics.yaml
new file mode 100644
index 000000000..bcce31f52
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/statistics.yaml
@@ -0,0 +1,2 @@
+errors:
+ notAllowedToReadStatistics: not allowed to read statistics
diff --git a/server/pkg/locale/src/en/corteza-server/system/template.yaml b/server/pkg/locale/src/en/corteza-server/system/template.yaml
new file mode 100644
index 000000000..a06c7d924
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/template.yaml
@@ -0,0 +1,12 @@
+errors:
+ cannotRenderPartial: cannot render partial templates
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create templates
+ notAllowedToDelete: not allowed to delete this template
+ notAllowedToRead: not allowed to read this template
+ notAllowedToRender: not allowed to render this template
+ notAllowedToSearch: not allowed to search or list templates
+ notAllowedToUndelete: not allowed to undelete this template
+ notAllowedToUpdate: not allowed to update this template
+ notFound: template not found
diff --git a/server/pkg/locale/src/en/corteza-server/system/user.yaml b/server/pkg/locale/src/en/corteza-server/system/user.yaml
new file mode 100644
index 000000000..bb05a613c
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-server/system/user.yaml
@@ -0,0 +1,20 @@
+errors:
+ emailNotUnique: email not unique
+ handleNotUnique: handle not unique
+ invalidEmail: invalid email
+ invalidHandle: invalid handle
+ invalidID: invalid ID
+ notAllowedToCreate: not allowed to create users
+ notAllowedToCreateSystem: not allowed to create system users
+ notAllowedToDelete: not allowed to delete this user
+ notAllowedToListUsers: not allowed to list users
+ notAllowedToRead: not allowed to read this user
+ notAllowedToSearch: not allowed to list or search users
+ notAllowedToSuspend: not allowed to suspend this user
+ notAllowedToUndelete: not allowed to undelete this user
+ notAllowedToUnsuspend: not allowed to unsuspend this user
+ notAllowedToUpdate: not allowed to update this user
+ notAllowedToUpdateSystem: not allowed to update system users
+ notFound: user not found
+ passwordNotSecure: provided password is not secure; use longer password with more special characters
+ usernameNotUnique: username not unique
diff --git a/server/pkg/locale/src/en/corteza-webapp-admin/admin.yaml b/server/pkg/locale/src/en/corteza-webapp-admin/admin.yaml
new file mode 100644
index 000000000..9d3c3a148
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-webapp-admin/admin.yaml
@@ -0,0 +1,111 @@
+automation:
+ add: Add script
+ edit:
+ asyncHelp: Do not wait for results and ignore errors. Incompatible with critical flag.
+ asyncLabel: Run this script asynchronously
+ codeTabLabel: Code
+ criticalHelp: Wait until this script is executed. In case of errors, abort execution of other scripts and before* trigger
+ criticalLabel: Critical script
+ delete: Delete script
+ enabledHelp: Disabled scripts will be ignored
+ enabledLabel: Enabled
+ mailAutomationTriggers:
+ addMatcher: Add condition
+ addTrigger: Add trigger
+ delete: Delete trigger
+ deleteTrigger: Delete
+ enable: Enable trigger
+ matchAll: Must match all conditions
+ matcher:
+ fields:
+ bcc: BCC
+ cc: CC
+ from: From
+ placeholder: Mail header field
+ replyTo: Reply To
+ subject: Subject
+ to: To
+ match: Value to match
+ operators:
+ equal-ci: Match full
+ placeholder: Operator
+ prefix-ci: Match prefix
+ regex: Regex
+ suffix-ci: Match suffix
+ user: Existing user
+ tabLabel: Mail triggers
+ nameLabel: Name
+ namePlaceholder: Automation script name
+ runAsCurrentUser: Run as "{{ user }}"
+ runAsHelp: Script runner
+ scheduledTriggers:
+ tabLabel: Scheduled
+ securityLabel: Security
+ settingsTabLabel: Settings
+ timeoutHelp: How much time do we wait before aborting the script? Value in milliseconds (1000ms = 1s). It defaults (when 0) to 2s with 30s as maximum. Consult with your administrator for exact numbers and limitations.
+ timeoutLabel: Script execution timeout
+ timeoutPlaceholder: "1500"
+ title: Automation script
+ userPickerPlaceholder: Select user
+ import: Import automation script(s)
+ list:
+ column:
+ label:
+ async: Async
+ critical: Critical
+ enabled: Enabled
+ runAs: Run As
+ runInUA: In browser
+ unnamed: (Unnamed script)
+ manage: Manage automation scripts ({{count}})
+ manage-id-permissions: Manage permissions for this script
+ manage-wc-permissions: Manage permissions for all scripts
+ newLabel: Create a new script
+ newPlaceholder: Script name
+ testing:
+ load: Load
+ parametersHeadline: 'Parameters & payload:'
+ resultsHeadline: 'Results:'
+ testInBrowser: Test in Browser
+ testInCorredor: Test in Corredor
+ warning: ""
+ title: List of automation script
+general:
+ resource-list:
+ no-items: No matches for your search
+ notFound: 'Not found'
+ loading: Loading
+ label:
+ "no": "No"
+ submit: Submit
+ "yes": "Yes"
+ selectOption: "Please select an option"
+ logout: Logout
+ noAccess: You do not have permissions to access Admin panel
+ pagination:
+ next: Next
+ prev: Prev
+ showing: '{{from}} - {{to}} of {{count}} items'
+ single: One item
+ single_plural: '{{count}} items'
+navigation:
+ adminPanel: Admin panel
+ automation: Automation
+ chart: Charts
+ configuration: Configuration
+ help:
+ documentation: Documentation
+ feedback: Send feedback
+ forum: Help
+ version: 'Version:'
+ module: Modules
+ more: More
+ namespace: Namespaces
+ noPageTitle: No page title
+ page: Pages
+ publicPages: Public pages
+ userSettings:
+ changePassword: Change password
+ loggedInAs: Logged in as {{user}}
+ logout: Logout
+ profile: Profile
diff --git a/server/pkg/locale/src/en/corteza-webapp-admin/automation.scripts.yaml b/server/pkg/locale/src/en/corteza-webapp-admin/automation.scripts.yaml
new file mode 100644
index 000000000..abd65eed3
--- /dev/null
+++ b/server/pkg/locale/src/en/corteza-webapp-admin/automation.scripts.yaml
@@ -0,0 +1,16 @@
+list:
+ columns:
+ updatedAt: Last update
+ filter:
+ absoluteTime: Show absolute time
+ incScriptsWithErrors: Errors ({{ count }})
+ incScriptsWithIterator: Iterator ({{ count }})
+ incScriptsWithSecurity: Security ({{ count }})
+ incScriptsWithTriggers: Triggers ({{ count }})
+ searchQuery: Search query
+ flags:
+ iterator: Iterator
+ security: Security
+ triggers: Triggers
+ labelMissing: