Change filter slices to be []string vs []uint64

This is to allow front-end to properly handle ID values.
This change was done to keep consistent with what we were doing
before. Alternative version would be to have a sepparate struct
on the rest package.
This commit is contained in:
Tomaž Jerman
2023-05-24 12:26:01 +02:00
parent 462619f2b9
commit 88804b460e
201 changed files with 6840 additions and 125 deletions
+6
View File
@@ -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
+3 -2
View File
@@ -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
+4 -4
View File
@@ -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),
+3 -3
View File
@@ -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,
+2 -1
View File
@@ -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 (
+4 -3
View File
@@ -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()
}
+2 -1
View File
@@ -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,
})
+5 -4
View File
@@ -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"`
+4 -3
View File
@@ -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"`
@@ -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 {
@@ -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
}
+11 -5
View File
@@ -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]
+2 -1
View File
@@ -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
}
+2 -2
View File
@@ -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
}
+1 -1
View File
@@ -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,
}
)
+5 -3
View File
@@ -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 {
+5 -4
View File
@@ -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
+6 -5
View File
@@ -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)
}
+1 -1
View File
@@ -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"`
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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"`
+1 -1
View File
@@ -29,7 +29,7 @@ type (
}
NamespaceFilter struct {
NamespaceID []uint64 `json:"namespaceID"`
NamespaceID []string `json:"namespaceID"`
Query string `json:"query"`
Slug string `json:"slug"`
+2 -2
View File
@@ -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"`
+1 -1
View File
@@ -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"`
@@ -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 {
@@ -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 {
+3 -2
View File
@@ -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"`
+2 -1
View File
@@ -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 {
@@ -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 {
+2 -1
View File
@@ -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
+4 -3
View File
@@ -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),
})
}
}
+31
View File
@@ -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
}
+1
View File
@@ -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"
+1
View File
@@ -0,0 +1 @@
name: English
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
template:
title: Internal error
@@ -0,0 +1,2 @@
version: version {{version}}
code-link: Access source code on
@@ -0,0 +1,2 @@
logged-in-as: You're logged-in as
logout: logout
@@ -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
@@ -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
@@ -0,0 +1,3 @@
template:
log-out: Logout successful
log-in: Click here to <a data-test-id="link-login" href="{{link}}">log in</a>
@@ -0,0 +1,5 @@
template:
title: Disable two-factor authentication with TOTP
instructions: Disable by entering existing code
button:
remove: Remove
@@ -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.
<br />
<br />
This will enable additional security for your account.
<br />
<br />
You can use one of the following applications:
lastpass: <a target="_blank" href="{{ link }}">LastPass Authenticator</a>
gauth: Google Authenticator for <a target="_blank" href="{{ android }}">Android</a> or <a target="_blank" href="{{ iphone }}">iPhone</a>
authy: <a target="_blank" href="{{ link }}">Authy</a>
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"
@@ -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
@@ -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 <a data-test-id="link-logout" href="{{link}}">log out</a>.
errors:
invalid-user: Cannot continue with unauthorized email, visit <a data-test-id="link-redirect-to-profile" href="{{link}}">your profile</a> and resolve the issue.
alerts:
denied: cannot authorize {{client}}, no permissions
@@ -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: <a data-test-id="link-return-to-login-page" href="{{login}}">Return to the login page</a>
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
@@ -0,0 +1,4 @@
template:
title: Confirm your email
instructions: You should receive email confirmation link to your inbox in a few moments
links: <a data-test-id="link-signup" href="{{signup}}">Create new account</a> or <a data-test-id="link-login" href="{{login}}">log in</a>
@@ -0,0 +1,30 @@
template:
title: Your profile
form:
email:
label: Email
placeholder: email@domain.ltd
resend-confirmation-link: Email is not verified, <a data-test-id="link-resend-confirmation" href="{{link}}?resend">resend confirmation link.</a>
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
@@ -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: <a data-test-id="link-return-to-login-page" href="{{login}}">Return to the login page</a>
@@ -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
@@ -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
@@ -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
@@ -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? <a data-test-id="link-login" href="{{link}}">Log in</a>
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
@@ -0,0 +1,2 @@
errors:
notAllowedToSetPermissions: not allowed to set permissions
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
errors:
notAllowedToSetPermissions: not allowed to set permissions
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
errors:
notAllowedToSetPermissions: not allowed to set permissions
@@ -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
@@ -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
@@ -0,0 +1,3 @@
errors:
nodeNotFound: node does not exist
notFound: node_sync does not exist
@@ -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
@@ -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
@@ -0,0 +1,3 @@
errors:
unauthorized: unauthorized
unauthorizedScope: unauthorized scope
@@ -0,0 +1,2 @@
errors:
notAllowedToSetPermissions: not allowed to set permissions
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,4 @@
errors:
notFound: credentials not found
invalidID: invalid ID
notAllowedToManage: not allowed to manage credentials for this user
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
errors:
notAllowedToReadStatistics: not allowed to read statistics
@@ -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
@@ -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
@@ -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
@@ -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: <label missing>
title: Corredor Scripts
@@ -0,0 +1,54 @@
editor:
info:
completedAt: Completed at
createdAt: Created at
createdByUserID: Created by - ID
createdByUserName: Created by - Name
delete: Delete
deletedAt: Deleted at
error: Error
eventType: Event type
id: ID
resourceType: Resource type
status: Status
title: Basic information
workflowID: WorkflowID
openWorkflow: Open workflow
cancel: Cancel session
title: Session
list:
columns:
actions: ""
createdAt: Created At
eventType: Event type
sessionID: SessionID
state: State
status: Status
workflowID: WorkflowID
filterForm:
all:
label: All
completed:
label: Completed
excluded:
label: Without
exclusive:
label: Only
failed:
label: Failed
inProgress:
label: completed sessions
inclusive:
label: Including
prompted:
label: Prompted
sessions:
label: sessions
started:
label: Started
suspended:
label: Suspended
loading: Loading sessions
numFound: '{{count}} session found'
numFound_plural: '{{count}} sessions found'
title: Sessions
@@ -0,0 +1,57 @@
editor:
info:
createdAt: Created at
delete: Delete
deletedAt: Deleted at
enabled: Enabled
handle: Handle
invalid-handle-characters: Should be at least 2 characters long. Can contain only letters, numbers, dashes, underscores and dots. Must end with letter or number
id: ID
name: Name *
openBuilder: Open builder
title: Basic information
undelete: Undelete
updatedAt: Updated at
new: New
permissions: Permissions
title:
create: Create workflow
edit: Edit workflow
triggers:
and: and
columns:
constraints: Constraints
eventType: Event
resourceType: Resource
title: Triggers
list:
columns:
actions: ""
createdAt: Created
enabled: Enabled
handle: Handle
name: Name
state: State
export: Export
rows:
filters:
deleted: Deleted
filterForm:
deleted:
label: deleted workflows
excluded:
label: Without
exclusive:
label: Only
inclusive:
label: Including
query:
label: Filter workflows list
placeholder: Filter workflows by name
loading: Loading workflows
new: New
numFound: '{{count}} workflow found'
numFound_plural: '{{count}} workflows found'
permissions: Permissions
title: Workflows
yaml: YAML

Some files were not shown because too many files have changed in this diff Show More