@hed-hog/core 0.0.355 → 0.0.356
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/ai.service.d.ts +3 -12
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +34 -125
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +3 -3
- package/dist/core.module.js.map +1 -1
- package/dist/file/file.service.d.ts +1 -1
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +50 -64
- package/dist/file/file.service.js.map +1 -1
- package/dist/file/provider/provider.enum.d.ts +2 -1
- package/dist/file/provider/provider.enum.d.ts.map +1 -1
- package/dist/file/provider/provider.enum.js +1 -0
- package/dist/file/provider/provider.enum.js.map +1 -1
- package/dist/file/provider/provider.factory.d.ts.map +1 -1
- package/dist/file/provider/provider.factory.js +3 -0
- package/dist/file/provider/provider.factory.js.map +1 -1
- package/dist/file/provider/spaces.provider.d.ts +27 -0
- package/dist/file/provider/spaces.provider.d.ts.map +1 -0
- package/dist/file/provider/spaces.provider.js +218 -0
- package/dist/file/provider/spaces.provider.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/integration-profile/dto/create.dto.d.ts +9 -0
- package/dist/integration-profile/dto/create.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/create.dto.js +54 -0
- package/dist/integration-profile/dto/create.dto.js.map +1 -0
- package/dist/integration-profile/dto/export.dto.d.ts +5 -0
- package/dist/integration-profile/dto/export.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/export.dto.js +29 -0
- package/dist/integration-profile/dto/export.dto.js.map +1 -0
- package/dist/integration-profile/dto/import-confirm.dto.d.ts +17 -0
- package/dist/integration-profile/dto/import-confirm.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/import-confirm.dto.js +77 -0
- package/dist/integration-profile/dto/import-confirm.dto.js.map +1 -0
- package/dist/integration-profile/dto/update.dto.d.ts +6 -0
- package/dist/integration-profile/dto/update.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/update.dto.js +9 -0
- package/dist/integration-profile/dto/update.dto.js.map +1 -0
- package/dist/integration-profile/integration-profile.controller.d.ts +142 -0
- package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -0
- package/dist/integration-profile/integration-profile.controller.js +165 -0
- package/dist/integration-profile/integration-profile.controller.js.map +1 -0
- package/dist/integration-profile/integration-profile.module.d.ts +3 -0
- package/dist/integration-profile/integration-profile.module.d.ts.map +1 -0
- package/dist/integration-profile/integration-profile.module.js +29 -0
- package/dist/integration-profile/integration-profile.module.js.map +1 -0
- package/dist/integration-profile/integration-profile.service.d.ts +160 -0
- package/dist/integration-profile/integration-profile.service.d.ts.map +1 -0
- package/dist/integration-profile/integration-profile.service.js +606 -0
- package/dist/integration-profile/integration-profile.service.js.map +1 -0
- package/dist/integration-profile/integration-profile.utils.d.ts +24 -0
- package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -0
- package/dist/integration-profile/integration-profile.utils.js +147 -0
- package/dist/integration-profile/integration-profile.utils.js.map +1 -0
- package/dist/mail/mail.module.d.ts.map +1 -1
- package/dist/mail/mail.module.js +27 -19
- package/dist/mail/mail.module.js.map +1 -1
- package/dist/mail/mail.service.d.ts +3 -2
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +25 -47
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mcp/mcp.module.js +2 -2
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts +3 -15
- package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-mail-profile.mcp-tools.js +12 -94
- package/dist/mcp/tools/core-mail-profile.mcp-tools.js.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.js +17 -16
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +0 -2
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/webhook-integration/event-webhook.controller.d.ts +1 -0
- package/dist/webhook-integration/event-webhook.controller.d.ts.map +1 -1
- package/dist/webhook-integration/event-webhook.controller.js +10 -0
- package/dist/webhook-integration/event-webhook.controller.js.map +1 -1
- package/dist/webhook-integration/event-webhook.service.d.ts +2 -0
- package/dist/webhook-integration/event-webhook.service.d.ts.map +1 -1
- package/dist/webhook-integration/event-webhook.service.js +30 -0
- package/dist/webhook-integration/event-webhook.service.js.map +1 -1
- package/dist/webhook-integration/webhook-integration.controller.d.ts +1 -0
- package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.controller.js +10 -0
- package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.d.ts +2 -1
- package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.js +62 -44
- package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
- package/dist/whatsapp-profile/dto/create.dto.d.ts +11 -0
- package/dist/whatsapp-profile/dto/create.dto.d.ts.map +1 -0
- package/dist/whatsapp-profile/dto/create.dto.js +55 -0
- package/dist/whatsapp-profile/dto/create.dto.js.map +1 -0
- package/dist/whatsapp-profile/dto/update.dto.d.ts +6 -0
- package/dist/whatsapp-profile/dto/update.dto.d.ts.map +1 -0
- package/dist/whatsapp-profile/dto/update.dto.js +9 -0
- package/dist/whatsapp-profile/dto/update.dto.js.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.controller.d.ts +54 -0
- package/dist/whatsapp-profile/whatsapp-profile.controller.d.ts.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.controller.js +85 -0
- package/dist/whatsapp-profile/whatsapp-profile.controller.js.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.module.d.ts +3 -0
- package/dist/whatsapp-profile/whatsapp-profile.module.d.ts.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.module.js +26 -0
- package/dist/whatsapp-profile/whatsapp-profile.module.js.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.service.d.ts +63 -0
- package/dist/whatsapp-profile/whatsapp-profile.service.d.ts.map +1 -0
- package/dist/whatsapp-profile/whatsapp-profile.service.js +138 -0
- package/dist/whatsapp-profile/whatsapp-profile.service.js.map +1 -0
- package/hedhog/data/file_provider.yaml +9 -1
- package/hedhog/data/integration_provider.yaml +132 -0
- package/hedhog/data/integration_type.yaml +29 -0
- package/hedhog/data/menu.yaml +15 -14
- package/hedhog/data/role.yaml +8 -0
- package/hedhog/data/route.yaml +66 -15
- package/hedhog/data/setting_group.yaml +30 -191
- package/hedhog/data/setting_subgroup.yaml +5 -13
- package/hedhog/data/whatsapp_profile.yaml +6 -0
- package/hedhog/frontend/app/account/components/connected-accounts.tsx.ejs +25 -20
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +579 -204
- package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +1662 -0
- package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +233 -108
- package/hedhog/frontend/app/mail/profiles/page.tsx.ejs +3 -822
- package/hedhog/frontend/app/users/permissions.tsx.ejs +79 -2
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +7 -2
- package/hedhog/frontend/messages/en.json +172 -0
- package/hedhog/frontend/messages/pt.json +172 -0
- package/hedhog/table/integration_profile.yaml +34 -0
- package/hedhog/table/integration_provider.yaml +23 -0
- package/hedhog/table/integration_type.yaml +19 -0
- package/hedhog/table/webhook_action.yaml +85 -85
- package/hedhog/table/whatsapp_profile.yaml +26 -0
- package/package.json +5 -5
- package/src/ai/ai.service.ts +35 -153
- package/src/core.module.ts +3 -3
- package/src/file/file.service.ts +60 -76
- package/src/file/provider/provider.enum.ts +1 -0
- package/src/file/provider/provider.factory.ts +3 -0
- package/src/file/provider/spaces.provider.ts +261 -0
- package/src/index.ts +6 -3
- package/src/integration-profile/dto/create.dto.ts +44 -0
- package/src/integration-profile/dto/export.dto.ts +15 -0
- package/src/integration-profile/dto/import-confirm.dto.ts +61 -0
- package/src/integration-profile/dto/update.dto.ts +4 -0
- package/src/integration-profile/integration-profile.controller.ts +129 -0
- package/src/integration-profile/integration-profile.module.ts +16 -0
- package/src/integration-profile/integration-profile.service.ts +788 -0
- package/src/integration-profile/integration-profile.utils.ts +156 -0
- package/src/mail/mail.module.ts +27 -18
- package/src/mail/mail.service.ts +31 -60
- package/src/mcp/mcp.module.ts +2 -2
- package/src/mcp/tools/core-mail-profile.mcp-tools.ts +10 -69
- package/src/mcp-chat/mcp-chat.service.ts +23 -20
- package/src/setting/setting.service.ts +0 -2
- package/src/webhook-integration/event-webhook.controller.ts +55 -50
- package/src/webhook-integration/event-webhook.service.ts +422 -384
- package/src/webhook-integration/webhook-integration.controller.ts +5 -0
- package/src/webhook-integration/webhook-integration.service.ts +74 -46
- package/src/whatsapp-profile/dto/create.dto.ts +36 -0
- package/src/whatsapp-profile/dto/update.dto.ts +4 -0
- package/src/whatsapp-profile/whatsapp-profile.controller.ts +51 -0
- package/src/whatsapp-profile/whatsapp-profile.module.ts +13 -0
- package/src/whatsapp-profile/whatsapp-profile.service.ts +160 -0
|
@@ -8,7 +8,7 @@ import { Label } from '@/components/ui/label';
|
|
|
8
8
|
import { Switch } from '@/components/ui/switch';
|
|
9
9
|
import { Role } from '@hed-hog/api-types';
|
|
10
10
|
import { useApp, useQuery } from '@hed-hog/next-app-provider';
|
|
11
|
-
import { Eye, Loader2, Search, ShieldCheck } from 'lucide-react';
|
|
11
|
+
import { CheckCheck, Eye, Loader2, Search, ShieldCheck, X } from 'lucide-react';
|
|
12
12
|
import { useTranslations } from 'next-intl';
|
|
13
13
|
import { useState } from 'react';
|
|
14
14
|
import { toast } from 'sonner';
|
|
@@ -32,6 +32,7 @@ export function PermissionsSection({
|
|
|
32
32
|
const t = useTranslations('core.UserPage');
|
|
33
33
|
const { request, currentLocaleCode } = useApp();
|
|
34
34
|
const [togglingRoleId, setTogglingRoleId] = useState<number | null>(null);
|
|
35
|
+
const [isBulkLoading, setIsBulkLoading] = useState(false);
|
|
35
36
|
const [search, setSearch] = useState('');
|
|
36
37
|
const [accessSheetOpen, setAccessSheetOpen] = useState(false);
|
|
37
38
|
|
|
@@ -78,6 +79,46 @@ export function PermissionsSection({
|
|
|
78
79
|
}
|
|
79
80
|
};
|
|
80
81
|
|
|
82
|
+
const handleAssignAll = async () => {
|
|
83
|
+
const unassigned = userRoles.filter((r) => !r.isAssigned && r.id);
|
|
84
|
+
if (!unassigned.length) return;
|
|
85
|
+
setIsBulkLoading(true);
|
|
86
|
+
try {
|
|
87
|
+
await Promise.all(
|
|
88
|
+
unassigned.map((role) =>
|
|
89
|
+
request({ url: `/user/${userId}/role/${role.id}`, method: 'POST' })
|
|
90
|
+
)
|
|
91
|
+
);
|
|
92
|
+
toast.success(t('allRolesAssigned'));
|
|
93
|
+
await refetchUserRoles();
|
|
94
|
+
onRoleChange?.();
|
|
95
|
+
} catch {
|
|
96
|
+
toast.error(t('errorBulkAssigningRoles'));
|
|
97
|
+
} finally {
|
|
98
|
+
setIsBulkLoading(false);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const handleRemoveAll = async () => {
|
|
103
|
+
const assigned = userRoles.filter((r) => r.isAssigned && r.id);
|
|
104
|
+
if (!assigned.length) return;
|
|
105
|
+
setIsBulkLoading(true);
|
|
106
|
+
try {
|
|
107
|
+
await Promise.all(
|
|
108
|
+
assigned.map((role) =>
|
|
109
|
+
request({ url: `/user/${userId}/role/${role.id}`, method: 'DELETE' })
|
|
110
|
+
)
|
|
111
|
+
);
|
|
112
|
+
toast.success(t('allRolesRemoved'));
|
|
113
|
+
await refetchUserRoles();
|
|
114
|
+
onRoleChange?.();
|
|
115
|
+
} catch {
|
|
116
|
+
toast.error(t('errorBulkRemovingRoles'));
|
|
117
|
+
} finally {
|
|
118
|
+
setIsBulkLoading(false);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
81
122
|
const filteredRoles = userRoles.filter((role) => {
|
|
82
123
|
if (!search.trim()) return true;
|
|
83
124
|
const q = search.toLowerCase();
|
|
@@ -88,6 +129,10 @@ export function PermissionsSection({
|
|
|
88
129
|
);
|
|
89
130
|
});
|
|
90
131
|
|
|
132
|
+
const hasUnassigned = userRoles.some((r) => !r.isAssigned);
|
|
133
|
+
const hasAssigned = userRoles.some((r) => r.isAssigned);
|
|
134
|
+
const isDisabled = isBulkLoading || !!togglingRoleId;
|
|
135
|
+
|
|
91
136
|
if (isLoadingUserRoles) {
|
|
92
137
|
return (
|
|
93
138
|
<div className="flex items-center justify-center py-8">
|
|
@@ -121,6 +166,38 @@ export function PermissionsSection({
|
|
|
121
166
|
className="pl-8 h-8 text-sm"
|
|
122
167
|
/>
|
|
123
168
|
</div>
|
|
169
|
+
{hasUnassigned && (
|
|
170
|
+
<Button
|
|
171
|
+
variant="outline"
|
|
172
|
+
size="sm"
|
|
173
|
+
className="shrink-0 gap-1.5"
|
|
174
|
+
onClick={handleAssignAll}
|
|
175
|
+
disabled={isDisabled}
|
|
176
|
+
>
|
|
177
|
+
{isBulkLoading ? (
|
|
178
|
+
<Loader2 className="h-4 w-4 animate-spin" />
|
|
179
|
+
) : (
|
|
180
|
+
<CheckCheck className="h-4 w-4" />
|
|
181
|
+
)}
|
|
182
|
+
{t('addAllRoles')}
|
|
183
|
+
</Button>
|
|
184
|
+
)}
|
|
185
|
+
{hasAssigned && (
|
|
186
|
+
<Button
|
|
187
|
+
variant="outline"
|
|
188
|
+
size="sm"
|
|
189
|
+
className="shrink-0 gap-1.5"
|
|
190
|
+
onClick={handleRemoveAll}
|
|
191
|
+
disabled={isDisabled}
|
|
192
|
+
>
|
|
193
|
+
{isBulkLoading ? (
|
|
194
|
+
<Loader2 className="h-4 w-4 animate-spin" />
|
|
195
|
+
) : (
|
|
196
|
+
<X className="h-4 w-4" />
|
|
197
|
+
)}
|
|
198
|
+
{t('removeAllRoles')}
|
|
199
|
+
</Button>
|
|
200
|
+
)}
|
|
124
201
|
<Button
|
|
125
202
|
variant="outline"
|
|
126
203
|
size="sm"
|
|
@@ -183,7 +260,7 @@ export function PermissionsSection({
|
|
|
183
260
|
<Switch
|
|
184
261
|
id={`role-${role.id}`}
|
|
185
262
|
checked={role.isAssigned}
|
|
186
|
-
disabled={isToggling}
|
|
263
|
+
disabled={isToggling || isDisabled}
|
|
187
264
|
onCheckedChange={() =>
|
|
188
265
|
handleToggleRole(role.id!, role.isAssigned)
|
|
189
266
|
}
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
Users,
|
|
72
72
|
} from 'lucide-react';
|
|
73
73
|
import { useTranslations } from 'next-intl';
|
|
74
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
74
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
75
75
|
import { useForm, useWatch } from 'react-hook-form';
|
|
76
76
|
import { toast } from 'sonner';
|
|
77
77
|
import { z } from 'zod';
|
|
@@ -370,6 +370,7 @@ function UserEditSheet({
|
|
|
370
370
|
const minPasswordLength = Number(getSettingValue('password-min-length')) || 6;
|
|
371
371
|
|
|
372
372
|
const [activeTab, setActiveTab] = useState('overview');
|
|
373
|
+
const prevUserIdRef = useRef<number | null>(null);
|
|
373
374
|
const [photo, setPhoto] = useState<number | null | undefined>(null);
|
|
374
375
|
const [isUploadingAvatar, setIsUploadingAvatar] = useState(false);
|
|
375
376
|
const [editFormError, setEditFormError] = useState<string | null>(null);
|
|
@@ -473,7 +474,10 @@ function UserEditSheet({
|
|
|
473
474
|
email: getUserEmail(editingUser),
|
|
474
475
|
}
|
|
475
476
|
);
|
|
476
|
-
|
|
477
|
+
if (prevUserIdRef.current !== Number(editingUser.id)) {
|
|
478
|
+
setActiveTab('overview');
|
|
479
|
+
prevUserIdRef.current = Number(editingUser.id);
|
|
480
|
+
}
|
|
477
481
|
}, [editingUser]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
478
482
|
|
|
479
483
|
const handleClose = (open: boolean) => {
|
|
@@ -482,6 +486,7 @@ function UserEditSheet({
|
|
|
482
486
|
setIsResetPasswordDialogOpen(false);
|
|
483
487
|
setIsResetResultDialogOpen(false);
|
|
484
488
|
setResetPasswordResult('');
|
|
489
|
+
prevUserIdRef.current = null;
|
|
485
490
|
}
|
|
486
491
|
onOpenChange(open);
|
|
487
492
|
};
|
|
@@ -260,6 +260,39 @@
|
|
|
260
260
|
"editNameLabel": "Name",
|
|
261
261
|
"editNamePlaceholder": "Enter user name",
|
|
262
262
|
"saveChanges": "Save Changes",
|
|
263
|
+
"selectProfile": "Select profile",
|
|
264
|
+
"selectAllVisible": "Select all visible profiles",
|
|
265
|
+
"export": "Export",
|
|
266
|
+
"exportAll": "Export All",
|
|
267
|
+
"exportSelected": "Export Selected",
|
|
268
|
+
"exportDialogTitle": "Export integration profiles",
|
|
269
|
+
"exportDialogDescriptionAll": "You are exporting all integration profiles.",
|
|
270
|
+
"exportDialogDescriptionSelected": "You are exporting only selected integration profiles.",
|
|
271
|
+
"exportIncludeSecrets": "Include secrets (tokens/keys/passwords)",
|
|
272
|
+
"exportSuccess": "Profiles exported successfully.",
|
|
273
|
+
"exportError": "Failed to export profiles.",
|
|
274
|
+
"noProfilesSelected": "Select at least one profile to export.",
|
|
275
|
+
"import": "Import",
|
|
276
|
+
"importDialogTitle": "Import integration profiles",
|
|
277
|
+
"importDialogDescription": "Validate the .hedhog file and confirm how to resolve slug conflicts.",
|
|
278
|
+
"importTotalProfiles": "Profiles in file",
|
|
279
|
+
"importValidProfiles": "Valid profiles",
|
|
280
|
+
"importInvalidProfiles": "Invalid profiles",
|
|
281
|
+
"importConflictProfiles": "Profiles with conflict",
|
|
282
|
+
"importInvalidItemsTitle": "Invalid items",
|
|
283
|
+
"importInvalidItemWithSlug": "Slug: {slug}",
|
|
284
|
+
"importInvalidItemWithoutSlug": "Item #{index}",
|
|
285
|
+
"importConflictTitle": "Slug conflicts",
|
|
286
|
+
"importConflictDescription": "Choose how to handle each existing slug.",
|
|
287
|
+
"conflictActionIgnore": "Ignore",
|
|
288
|
+
"conflictActionReplace": "Replace",
|
|
289
|
+
"conflictActionRenameAuto": "Auto-generate new slug",
|
|
290
|
+
"confirmImport": "Confirm Import",
|
|
291
|
+
"importing": "Importing...",
|
|
292
|
+
"importValidateError": "Failed to validate import file.",
|
|
293
|
+
"importResolveAllConflicts": "Set an action for all slug conflicts.",
|
|
294
|
+
"importSuccessCount": "Import completed. {count} profiles imported.",
|
|
295
|
+
"importError": "Failed to import profiles.",
|
|
263
296
|
"cancel": "Cancel",
|
|
264
297
|
"noRecentActivity": "No recent activity from this user.",
|
|
265
298
|
"users": "Users",
|
|
@@ -285,6 +318,12 @@
|
|
|
285
318
|
"errorLoadingRoles": "Error loading roles",
|
|
286
319
|
"errorAssigningRole": "Error assigning role",
|
|
287
320
|
"errorRemovingRole": "Error removing role",
|
|
321
|
+
"addAllRoles": "Add all roles",
|
|
322
|
+
"removeAllRoles": "Remove all roles",
|
|
323
|
+
"allRolesAssigned": "All roles assigned successfully",
|
|
324
|
+
"allRolesRemoved": "All roles removed successfully",
|
|
325
|
+
"errorBulkAssigningRoles": "Error assigning all roles",
|
|
326
|
+
"errorBulkRemovingRoles": "Error removing all roles",
|
|
288
327
|
"passwordResetTitle": "Password Reset",
|
|
289
328
|
"passwordResetDescription": "Generate a new password for this user.",
|
|
290
329
|
"passwordResetNotice": "After this reset, the user must change the password on the next login.",
|
|
@@ -1179,11 +1218,16 @@
|
|
|
1179
1218
|
"fileUrlPlaceholder": "File URL",
|
|
1180
1219
|
"selectOption": "Select an option",
|
|
1181
1220
|
"selectMailProfile": "Select a mail profile",
|
|
1221
|
+
"selectWhatsAppProfile": "Select a WhatsApp profile",
|
|
1222
|
+
"selectStorageProfile": "Select a storage profile",
|
|
1223
|
+
"storageProfileEmptyState": "No storage profiles found.",
|
|
1182
1224
|
"mailProfile": {
|
|
1183
1225
|
"nameLabel": "Name *",
|
|
1184
1226
|
"namePlaceholder": "My Mail Profile",
|
|
1185
1227
|
"fromEmailLabel": "From Email *",
|
|
1186
1228
|
"fromEmailPlaceholder": "no-reply@example.com",
|
|
1229
|
+
"fromNameLabel": "Sender name",
|
|
1230
|
+
"fromNamePlaceholder": "Sales Team",
|
|
1187
1231
|
"providerLabel": "Provider *",
|
|
1188
1232
|
"providers": {
|
|
1189
1233
|
"ses": "Amazon SES"
|
|
@@ -1195,6 +1239,8 @@
|
|
|
1195
1239
|
"smtpUsernameLabel": "SMTP Username *",
|
|
1196
1240
|
"smtpUsernamePlaceholder": "user@example.com",
|
|
1197
1241
|
"smtpPasswordLabel": "SMTP Password *",
|
|
1242
|
+
"replyToEmailLabel": "Reply-to email",
|
|
1243
|
+
"replyToEmailPlaceholder": "support@company.com",
|
|
1198
1244
|
"clientIdLabel": "Client ID *",
|
|
1199
1245
|
"clientSecretLabel": "Client Secret *",
|
|
1200
1246
|
"refreshTokenLabel": "Refresh Token *",
|
|
@@ -1202,6 +1248,17 @@
|
|
|
1202
1248
|
"secretAccessKeyLabel": "Secret Access Key *",
|
|
1203
1249
|
"regionLabel": "Region *",
|
|
1204
1250
|
"regionPlaceholder": "us-east-1"
|
|
1251
|
+
},
|
|
1252
|
+
"whatsappProfile": {
|
|
1253
|
+
"nameLabel": "Name *",
|
|
1254
|
+
"namePlaceholder": "My WhatsApp Profile",
|
|
1255
|
+
"providerLabel": "Provider *",
|
|
1256
|
+
"hostLabel": "API Host *",
|
|
1257
|
+
"hostPlaceholder": "https://api.example.com",
|
|
1258
|
+
"instanceNameLabel": "Instance Name *",
|
|
1259
|
+
"instanceNamePlaceholder": "MyInstance",
|
|
1260
|
+
"tokenLabel": "Token *",
|
|
1261
|
+
"tokenPlaceholder": "Authentication token"
|
|
1205
1262
|
}
|
|
1206
1263
|
},
|
|
1207
1264
|
"AddWidgetDialog": {
|
|
@@ -1924,6 +1981,7 @@
|
|
|
1924
1981
|
"deleteError": "Could not delete the item.",
|
|
1925
1982
|
"tokenGenerated": "Token generated successfully",
|
|
1926
1983
|
"uuidRegenerated": "UUID regenerated successfully",
|
|
1984
|
+
"duplicated": "Duplicated successfully",
|
|
1927
1985
|
"editEvent": "Edit event",
|
|
1928
1986
|
"editIncoming": "Edit incoming webhook",
|
|
1929
1987
|
"editEventWebhook": "Edit event webhook",
|
|
@@ -2110,5 +2168,119 @@
|
|
|
2110
2168
|
"actions": "Actions",
|
|
2111
2169
|
"noUserAgent": "—",
|
|
2112
2170
|
"detailsDescription": "Full details of this access log entry"
|
|
2171
|
+
},
|
|
2172
|
+
"IntegrationProfilePage": {
|
|
2173
|
+
"breadcrumbHome": "Home",
|
|
2174
|
+
"breadcrumbTitle": "Integration Profiles",
|
|
2175
|
+
"title": "Integration Profiles",
|
|
2176
|
+
"description": "Manage credentials and connection settings for email, messaging, storage, AI, and OAuth providers.",
|
|
2177
|
+
"searchPlaceholder": "Search profiles by name or slug...",
|
|
2178
|
+
"selectProfile": "Select profile",
|
|
2179
|
+
"selectAllVisible": "Select all visible profiles",
|
|
2180
|
+
"newProfile": "New Profile",
|
|
2181
|
+
"export": "Export",
|
|
2182
|
+
"exportAll": "Export All",
|
|
2183
|
+
"exportSelected": "Export Selected",
|
|
2184
|
+
"exportDialogTitle": "Export integration profiles",
|
|
2185
|
+
"exportDialogDescriptionAll": "You are exporting all integration profiles.",
|
|
2186
|
+
"exportDialogDescriptionSelected": "You are exporting only the selected profiles.",
|
|
2187
|
+
"exportIncludeSecrets": "Include secrets (tokens/keys/passwords)",
|
|
2188
|
+
"exportSuccess": "Profiles exported successfully.",
|
|
2189
|
+
"exportError": "Failed to export profiles.",
|
|
2190
|
+
"noProfilesSelected": "Select at least one profile to export.",
|
|
2191
|
+
"import": "Import",
|
|
2192
|
+
"importDialogTitle": "Import integration profiles",
|
|
2193
|
+
"importDialogDescription": "Validate the .hedhog file and confirm how slug conflicts should be resolved.",
|
|
2194
|
+
"importTotalProfiles": "Profiles in file",
|
|
2195
|
+
"importValidProfiles": "Valid profiles",
|
|
2196
|
+
"importInvalidProfiles": "Invalid profiles",
|
|
2197
|
+
"importConflictProfiles": "Profiles with conflicts",
|
|
2198
|
+
"importInvalidItemsTitle": "Invalid items",
|
|
2199
|
+
"importInvalidItemWithSlug": "Slug: {slug}",
|
|
2200
|
+
"importInvalidItemWithoutSlug": "Item #{index}",
|
|
2201
|
+
"importConflictTitle": "Slug conflicts",
|
|
2202
|
+
"importConflictDescription": "Choose how to handle each existing slug.",
|
|
2203
|
+
"conflictActionIgnore": "Ignore",
|
|
2204
|
+
"conflictActionReplace": "Replace",
|
|
2205
|
+
"conflictActionRenameAuto": "New automatic slug",
|
|
2206
|
+
"confirmImport": "Confirm Import",
|
|
2207
|
+
"importing": "Importing...",
|
|
2208
|
+
"importValidateError": "Failed to validate import file.",
|
|
2209
|
+
"importResolveAllConflicts": "Set an action for all slug conflicts.",
|
|
2210
|
+
"importSuccessCount": "Import completed. {count} profiles imported.",
|
|
2211
|
+
"importError": "Failed to import profiles.",
|
|
2212
|
+
"newProfileTitle": "New Integration Profile",
|
|
2213
|
+
"newProfileDescription": "Choose a provider and fill in the credentials.",
|
|
2214
|
+
"editProfile": "Edit Profile",
|
|
2215
|
+
"editProfileDescription": "Update this integration profile and its credentials.",
|
|
2216
|
+
"nameLabel": "Name",
|
|
2217
|
+
"namePlaceholder": "My SMTP Profile",
|
|
2218
|
+
"slugLabel": "Slug",
|
|
2219
|
+
"slugPlaceholder": "my-smtp-profile",
|
|
2220
|
+
"typeLabel": "Type",
|
|
2221
|
+
"typePlaceholder": "Select a type...",
|
|
2222
|
+
"providerLabel": "Provider",
|
|
2223
|
+
"providerPlaceholder": "Select a provider...",
|
|
2224
|
+
"providerSelectTypFirst": "Select a type first",
|
|
2225
|
+
"isActiveLabel": "Active",
|
|
2226
|
+
"configSectionTitle": "Credentials",
|
|
2227
|
+
"tableName": "Name",
|
|
2228
|
+
"tableSlug": "Slug",
|
|
2229
|
+
"tableProvider": "Provider",
|
|
2230
|
+
"tableStatus": "Status",
|
|
2231
|
+
"tableUses": "Uses",
|
|
2232
|
+
"tableUpdated": "Updated",
|
|
2233
|
+
"tableActions": "Actions",
|
|
2234
|
+
"statusActive": "Active",
|
|
2235
|
+
"statusInactive": "Inactive",
|
|
2236
|
+
"noProfilesFound": "No profiles found",
|
|
2237
|
+
"noProfilesHint": "Create a new profile to store connection credentials.",
|
|
2238
|
+
"createProfile": "Create Profile",
|
|
2239
|
+
"saveChanges": "Save Changes",
|
|
2240
|
+
"cancel": "Cancel",
|
|
2241
|
+
"delete": "Delete",
|
|
2242
|
+
"deleteConfirmTitle": "Confirm Deletion",
|
|
2243
|
+
"deleteConfirmDescription": "Are you sure you want to delete this profile? This action cannot be undone.",
|
|
2244
|
+
"createSuccess": "Integration profile created successfully.",
|
|
2245
|
+
"createError": "Failed to create the integration profile.",
|
|
2246
|
+
"updateSuccess": "Integration profile updated successfully.",
|
|
2247
|
+
"updateError": "Failed to update the integration profile.",
|
|
2248
|
+
"deleteSuccess": "Integration profile deleted successfully.",
|
|
2249
|
+
"deleteError": "Failed to delete the integration profile.",
|
|
2250
|
+
"loadError": "Failed to load integration profile data.",
|
|
2251
|
+
"fieldHost": "Host",
|
|
2252
|
+
"fieldPort": "Port",
|
|
2253
|
+
"fieldUsername": "Username",
|
|
2254
|
+
"fieldPassword": "Password",
|
|
2255
|
+
"fieldSecure": "TLS / SSL",
|
|
2256
|
+
"fieldFromEmail": "From Email",
|
|
2257
|
+
"fieldFromName": "From Name",
|
|
2258
|
+
"fieldReplyTo": "Reply-To Email",
|
|
2259
|
+
"fieldClientId": "Client ID",
|
|
2260
|
+
"fieldClientSecret": "Client Secret",
|
|
2261
|
+
"fieldRefreshToken": "Refresh Token",
|
|
2262
|
+
"fieldAccessKeyId": "Access Key ID",
|
|
2263
|
+
"fieldSecretAccessKey": "Secret Access Key",
|
|
2264
|
+
"fieldRegion": "Region",
|
|
2265
|
+
"fieldToken": "Token",
|
|
2266
|
+
"fieldInstanceName": "Instance Name",
|
|
2267
|
+
"fieldPhoneNumberId": "Phone Number ID",
|
|
2268
|
+
"fieldAccessToken": "Access Token",
|
|
2269
|
+
"fieldBusinessId": "Business ID",
|
|
2270
|
+
"fieldBasePath": "Base Path",
|
|
2271
|
+
"fieldBucket": "Bucket",
|
|
2272
|
+
"fieldProjectId": "Project ID",
|
|
2273
|
+
"fieldKeyFileJson": "Service Account JSON",
|
|
2274
|
+
"fieldConnectionString": "Connection String",
|
|
2275
|
+
"fieldAccount": "Storage Account",
|
|
2276
|
+
"fieldAccountKey": "Account Key",
|
|
2277
|
+
"fieldContainer": "Container",
|
|
2278
|
+
"fieldEndpoint": "Endpoint URL",
|
|
2279
|
+
"fieldApiKey": "API Key",
|
|
2280
|
+
"fieldOrganization": "Organization ID",
|
|
2281
|
+
"fieldRedirectUri": "Redirect URI",
|
|
2282
|
+
"fieldTenantId": "Tenant ID",
|
|
2283
|
+
"showPassword": "Show value",
|
|
2284
|
+
"hidePassword": "Hide value"
|
|
2113
2285
|
}
|
|
2114
2286
|
}
|
|
@@ -260,6 +260,39 @@
|
|
|
260
260
|
"editNameLabel": "Nome",
|
|
261
261
|
"editNamePlaceholder": "Digite o nome do usuário",
|
|
262
262
|
"saveChanges": "Salvar Alterações",
|
|
263
|
+
"selectProfile": "Selecionar perfil",
|
|
264
|
+
"selectAllVisible": "Selecionar todos os perfis visíveis",
|
|
265
|
+
"export": "Exportar",
|
|
266
|
+
"exportAll": "Exportar Todos",
|
|
267
|
+
"exportSelected": "Exportar Selecionados",
|
|
268
|
+
"exportDialogTitle": "Exportar perfis de integração",
|
|
269
|
+
"exportDialogDescriptionAll": "Você está exportando todos os perfis de integração.",
|
|
270
|
+
"exportDialogDescriptionSelected": "Você está exportando somente os perfis selecionados.",
|
|
271
|
+
"exportIncludeSecrets": "Incluir segredos (tokens/chaves/senhas)",
|
|
272
|
+
"exportSuccess": "Perfis exportados com sucesso.",
|
|
273
|
+
"exportError": "Falha ao exportar os perfis.",
|
|
274
|
+
"noProfilesSelected": "Selecione pelo menos um perfil para exportar.",
|
|
275
|
+
"import": "Importar",
|
|
276
|
+
"importDialogTitle": "Importar perfis de integração",
|
|
277
|
+
"importDialogDescription": "Valide o arquivo .hedhog e confirme como resolver conflitos de slug.",
|
|
278
|
+
"importTotalProfiles": "Perfis no arquivo",
|
|
279
|
+
"importValidProfiles": "Perfis válidos",
|
|
280
|
+
"importInvalidProfiles": "Perfis inválidos",
|
|
281
|
+
"importConflictProfiles": "Perfis com conflito",
|
|
282
|
+
"importInvalidItemsTitle": "Itens inválidos",
|
|
283
|
+
"importInvalidItemWithSlug": "Slug: {slug}",
|
|
284
|
+
"importInvalidItemWithoutSlug": "Item #{index}",
|
|
285
|
+
"importConflictTitle": "Conflitos de slug",
|
|
286
|
+
"importConflictDescription": "Escolha como tratar cada slug já existente.",
|
|
287
|
+
"conflictActionIgnore": "Ignorar",
|
|
288
|
+
"conflictActionReplace": "Substituir",
|
|
289
|
+
"conflictActionRenameAuto": "Novo slug automático",
|
|
290
|
+
"confirmImport": "Confirmar Importação",
|
|
291
|
+
"importing": "Importando...",
|
|
292
|
+
"importValidateError": "Falha ao validar o arquivo de importação.",
|
|
293
|
+
"importResolveAllConflicts": "Defina uma ação para todos os conflitos de slug.",
|
|
294
|
+
"importSuccessCount": "Importação concluída. {count} perfis importados.",
|
|
295
|
+
"importError": "Falha ao importar os perfis.",
|
|
263
296
|
"cancel": "Cancelar",
|
|
264
297
|
"noRecentActivity": "Nenhuma atividade recente deste usuário.",
|
|
265
298
|
"users": "Usuários",
|
|
@@ -285,6 +318,12 @@
|
|
|
285
318
|
"errorLoadingRoles": "Erro ao carregar cargos",
|
|
286
319
|
"errorAssigningRole": "Erro ao atribuir cargo",
|
|
287
320
|
"errorRemovingRole": "Erro ao remover cargo",
|
|
321
|
+
"addAllRoles": "Adicionar todos os cargos",
|
|
322
|
+
"removeAllRoles": "Remover todos os cargos",
|
|
323
|
+
"allRolesAssigned": "Todos os cargos atribuídos com sucesso",
|
|
324
|
+
"allRolesRemoved": "Todos os cargos removidos com sucesso",
|
|
325
|
+
"errorBulkAssigningRoles": "Erro ao atribuir todos os cargos",
|
|
326
|
+
"errorBulkRemovingRoles": "Erro ao remover todos os cargos",
|
|
288
327
|
"passwordResetTitle": "Redefinição de senha",
|
|
289
328
|
"passwordResetDescription": "Gere uma nova senha para este usuário.",
|
|
290
329
|
"passwordResetNotice": "Após essa redefinição, o usuário será obrigado a alterar a senha no próximo login.",
|
|
@@ -1182,11 +1221,16 @@
|
|
|
1182
1221
|
"fileUrlPlaceholder": "URL do arquivo",
|
|
1183
1222
|
"selectOption": "Selecione uma opção",
|
|
1184
1223
|
"selectMailProfile": "Selecione um perfil de email",
|
|
1224
|
+
"selectWhatsAppProfile": "Selecione um perfil de WhatsApp",
|
|
1225
|
+
"selectStorageProfile": "Selecione um perfil de armazenamento",
|
|
1226
|
+
"storageProfileEmptyState": "Nenhum perfil de armazenamento encontrado.",
|
|
1185
1227
|
"mailProfile": {
|
|
1186
1228
|
"nameLabel": "Nome *",
|
|
1187
1229
|
"namePlaceholder": "Meu Perfil de Email",
|
|
1188
1230
|
"fromEmailLabel": "Email de envio *",
|
|
1189
1231
|
"fromEmailPlaceholder": "nao-responda@exemplo.com",
|
|
1232
|
+
"fromNameLabel": "Nome do remetente",
|
|
1233
|
+
"fromNamePlaceholder": "Equipe Comercial",
|
|
1190
1234
|
"providerLabel": "Provedor *",
|
|
1191
1235
|
"providers": {
|
|
1192
1236
|
"ses": "Amazon SES"
|
|
@@ -1198,6 +1242,8 @@
|
|
|
1198
1242
|
"smtpUsernameLabel": "Usuário SMTP *",
|
|
1199
1243
|
"smtpUsernamePlaceholder": "usuario@exemplo.com",
|
|
1200
1244
|
"smtpPasswordLabel": "Senha SMTP *",
|
|
1245
|
+
"replyToEmailLabel": "E-mail do reply-to",
|
|
1246
|
+
"replyToEmailPlaceholder": "suporte@empresa.com",
|
|
1201
1247
|
"clientIdLabel": "Client ID *",
|
|
1202
1248
|
"clientSecretLabel": "Client Secret *",
|
|
1203
1249
|
"refreshTokenLabel": "Refresh Token *",
|
|
@@ -1205,6 +1251,17 @@
|
|
|
1205
1251
|
"secretAccessKeyLabel": "Secret Access Key *",
|
|
1206
1252
|
"regionLabel": "Região *",
|
|
1207
1253
|
"regionPlaceholder": "us-east-1"
|
|
1254
|
+
},
|
|
1255
|
+
"whatsappProfile": {
|
|
1256
|
+
"nameLabel": "Nome *",
|
|
1257
|
+
"namePlaceholder": "Meu Perfil de WhatsApp",
|
|
1258
|
+
"providerLabel": "Provedor *",
|
|
1259
|
+
"hostLabel": "Host da API *",
|
|
1260
|
+
"hostPlaceholder": "https://api.exemplo.com",
|
|
1261
|
+
"instanceNameLabel": "Nome da instância *",
|
|
1262
|
+
"instanceNamePlaceholder": "MinhaInstancia",
|
|
1263
|
+
"tokenLabel": "Token *",
|
|
1264
|
+
"tokenPlaceholder": "Token de autenticação"
|
|
1208
1265
|
}
|
|
1209
1266
|
},
|
|
1210
1267
|
"AddWidgetDialog": {
|
|
@@ -1979,6 +2036,7 @@
|
|
|
1979
2036
|
"deleteError": "Não foi possível excluir o item.",
|
|
1980
2037
|
"tokenGenerated": "Token gerado com sucesso",
|
|
1981
2038
|
"uuidRegenerated": "UUID regenerado com sucesso",
|
|
2039
|
+
"duplicated": "Duplicado com sucesso",
|
|
1982
2040
|
"editEvent": "Editar evento",
|
|
1983
2041
|
"editIncoming": "Editar webhook de entrada",
|
|
1984
2042
|
"editEventWebhook": "Editar webhook de evento",
|
|
@@ -2165,5 +2223,119 @@
|
|
|
2165
2223
|
"actions": "Ações",
|
|
2166
2224
|
"noUserAgent": "—",
|
|
2167
2225
|
"detailsDescription": "Detalhes completos desta entrada de log de acesso"
|
|
2226
|
+
},
|
|
2227
|
+
"IntegrationProfilePage": {
|
|
2228
|
+
"breadcrumbHome": "Início",
|
|
2229
|
+
"breadcrumbTitle": "Perfis de Integração",
|
|
2230
|
+
"title": "Perfis de Integração",
|
|
2231
|
+
"description": "Gerencie credenciais para provedores de e-mail, mensagens, armazenamento, IA e OAuth.",
|
|
2232
|
+
"searchPlaceholder": "Buscar perfis por nome ou slug...",
|
|
2233
|
+
"selectProfile": "Selecionar perfil",
|
|
2234
|
+
"selectAllVisible": "Selecionar todos os perfis visíveis",
|
|
2235
|
+
"newProfile": "Novo Perfil",
|
|
2236
|
+
"export": "Exportar",
|
|
2237
|
+
"exportAll": "Exportar Todos",
|
|
2238
|
+
"exportSelected": "Exportar Selecionados",
|
|
2239
|
+
"exportDialogTitle": "Exportar perfis de integração",
|
|
2240
|
+
"exportDialogDescriptionAll": "Você está exportando todos os perfis de integração.",
|
|
2241
|
+
"exportDialogDescriptionSelected": "Você está exportando somente os perfis selecionados.",
|
|
2242
|
+
"exportIncludeSecrets": "Incluir segredos (tokens/chaves/senhas)",
|
|
2243
|
+
"exportSuccess": "Perfis exportados com sucesso.",
|
|
2244
|
+
"exportError": "Falha ao exportar os perfis.",
|
|
2245
|
+
"noProfilesSelected": "Selecione pelo menos um perfil para exportar.",
|
|
2246
|
+
"import": "Importar",
|
|
2247
|
+
"importDialogTitle": "Importar perfis de integração",
|
|
2248
|
+
"importDialogDescription": "Valide o arquivo .hedhog e confirme como resolver conflitos de slug.",
|
|
2249
|
+
"importTotalProfiles": "Perfis no arquivo",
|
|
2250
|
+
"importValidProfiles": "Perfis válidos",
|
|
2251
|
+
"importInvalidProfiles": "Perfis inválidos",
|
|
2252
|
+
"importConflictProfiles": "Perfis com conflito",
|
|
2253
|
+
"importInvalidItemsTitle": "Itens inválidos",
|
|
2254
|
+
"importInvalidItemWithSlug": "Slug: {slug}",
|
|
2255
|
+
"importInvalidItemWithoutSlug": "Item #{index}",
|
|
2256
|
+
"importConflictTitle": "Conflitos de slug",
|
|
2257
|
+
"importConflictDescription": "Escolha como tratar cada slug já existente.",
|
|
2258
|
+
"conflictActionIgnore": "Ignorar",
|
|
2259
|
+
"conflictActionReplace": "Substituir",
|
|
2260
|
+
"conflictActionRenameAuto": "Novo slug automático",
|
|
2261
|
+
"confirmImport": "Confirmar Importação",
|
|
2262
|
+
"importing": "Importando...",
|
|
2263
|
+
"importValidateError": "Falha ao validar o arquivo de importação.",
|
|
2264
|
+
"importResolveAllConflicts": "Defina uma ação para todos os conflitos de slug.",
|
|
2265
|
+
"importSuccessCount": "Importação concluída. {count} perfis importados.",
|
|
2266
|
+
"importError": "Falha ao importar os perfis.",
|
|
2267
|
+
"newProfileTitle": "Novo Perfil de Integração",
|
|
2268
|
+
"newProfileDescription": "Escolha um provedor e preencha as credenciais.",
|
|
2269
|
+
"editProfile": "Editar Perfil",
|
|
2270
|
+
"editProfileDescription": "Atualize este perfil de integração e suas credenciais.",
|
|
2271
|
+
"nameLabel": "Nome",
|
|
2272
|
+
"namePlaceholder": "Meu Perfil SMTP",
|
|
2273
|
+
"slugLabel": "Slug",
|
|
2274
|
+
"slugPlaceholder": "meu-perfil-smtp",
|
|
2275
|
+
"typeLabel": "Tipo",
|
|
2276
|
+
"typePlaceholder": "Selecione um tipo...",
|
|
2277
|
+
"providerLabel": "Provedor",
|
|
2278
|
+
"providerPlaceholder": "Selecione um provedor...",
|
|
2279
|
+
"providerSelectTypFirst": "Selecione um tipo primeiro",
|
|
2280
|
+
"isActiveLabel": "Ativo",
|
|
2281
|
+
"configSectionTitle": "Credenciais",
|
|
2282
|
+
"tableName": "Nome",
|
|
2283
|
+
"tableSlug": "Slug",
|
|
2284
|
+
"tableProvider": "Provedor",
|
|
2285
|
+
"tableStatus": "Status",
|
|
2286
|
+
"tableUses": "Usos",
|
|
2287
|
+
"tableUpdated": "Atualizado",
|
|
2288
|
+
"tableActions": "Ações",
|
|
2289
|
+
"statusActive": "Ativo",
|
|
2290
|
+
"statusInactive": "Inativo",
|
|
2291
|
+
"noProfilesFound": "Nenhum perfil encontrado",
|
|
2292
|
+
"noProfilesHint": "Crie um novo perfil para armazenar credenciais de conexão.",
|
|
2293
|
+
"createProfile": "Criar Perfil",
|
|
2294
|
+
"saveChanges": "Salvar Alterações",
|
|
2295
|
+
"cancel": "Cancelar",
|
|
2296
|
+
"delete": "Excluir",
|
|
2297
|
+
"deleteConfirmTitle": "Confirmar Exclusão",
|
|
2298
|
+
"deleteConfirmDescription": "Tem certeza que deseja excluir este perfil? Esta ação não pode ser desfeita.",
|
|
2299
|
+
"createSuccess": "Perfil de integração criado com sucesso.",
|
|
2300
|
+
"createError": "Falha ao criar o perfil de integração.",
|
|
2301
|
+
"updateSuccess": "Perfil de integração atualizado com sucesso.",
|
|
2302
|
+
"updateError": "Falha ao atualizar o perfil de integração.",
|
|
2303
|
+
"deleteSuccess": "Perfil de integração excluído com sucesso.",
|
|
2304
|
+
"deleteError": "Falha ao excluir o perfil de integração.",
|
|
2305
|
+
"loadError": "Falha ao carregar os dados do perfil de integração.",
|
|
2306
|
+
"fieldHost": "Host",
|
|
2307
|
+
"fieldPort": "Porta",
|
|
2308
|
+
"fieldUsername": "Usuário",
|
|
2309
|
+
"fieldPassword": "Senha",
|
|
2310
|
+
"fieldSecure": "TLS / SSL",
|
|
2311
|
+
"fieldFromEmail": "E-mail de Envio",
|
|
2312
|
+
"fieldFromName": "Nome de Envio",
|
|
2313
|
+
"fieldReplyTo": "E-mail de Resposta",
|
|
2314
|
+
"fieldClientId": "Client ID",
|
|
2315
|
+
"fieldClientSecret": "Client Secret",
|
|
2316
|
+
"fieldRefreshToken": "Refresh Token",
|
|
2317
|
+
"fieldAccessKeyId": "Access Key ID",
|
|
2318
|
+
"fieldSecretAccessKey": "Secret Access Key",
|
|
2319
|
+
"fieldRegion": "Região",
|
|
2320
|
+
"fieldToken": "Token",
|
|
2321
|
+
"fieldInstanceName": "Nome da Instância",
|
|
2322
|
+
"fieldPhoneNumberId": "ID do Número de Telefone",
|
|
2323
|
+
"fieldAccessToken": "Access Token",
|
|
2324
|
+
"fieldBusinessId": "Business ID",
|
|
2325
|
+
"fieldBasePath": "Caminho Base",
|
|
2326
|
+
"fieldBucket": "Bucket",
|
|
2327
|
+
"fieldProjectId": "Project ID",
|
|
2328
|
+
"fieldKeyFileJson": "JSON da Conta de Serviço",
|
|
2329
|
+
"fieldConnectionString": "Connection String",
|
|
2330
|
+
"fieldAccount": "Conta de Armazenamento",
|
|
2331
|
+
"fieldAccountKey": "Chave da Conta",
|
|
2332
|
+
"fieldContainer": "Container",
|
|
2333
|
+
"fieldEndpoint": "URL do Endpoint",
|
|
2334
|
+
"fieldApiKey": "Chave de API",
|
|
2335
|
+
"fieldOrganization": "ID da Organização",
|
|
2336
|
+
"fieldRedirectUri": "URI de Redirecionamento",
|
|
2337
|
+
"fieldTenantId": "Tenant ID",
|
|
2338
|
+
"showPassword": "Mostrar valor",
|
|
2339
|
+
"hidePassword": "Ocultar valor"
|
|
2168
2340
|
}
|
|
2169
2341
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- type: slug
|
|
4
|
+
- name: name
|
|
5
|
+
type: varchar
|
|
6
|
+
length: 127
|
|
7
|
+
- name: type_id
|
|
8
|
+
type: fk
|
|
9
|
+
references:
|
|
10
|
+
table: integration_type
|
|
11
|
+
column: id
|
|
12
|
+
onDelete: RESTRICT
|
|
13
|
+
- name: provider_id
|
|
14
|
+
type: fk
|
|
15
|
+
references:
|
|
16
|
+
table: integration_provider
|
|
17
|
+
column: id
|
|
18
|
+
onDelete: RESTRICT
|
|
19
|
+
- name: config
|
|
20
|
+
type: json
|
|
21
|
+
isNullable: true
|
|
22
|
+
- name: is_active
|
|
23
|
+
type: boolean
|
|
24
|
+
default: true
|
|
25
|
+
- type: created_at
|
|
26
|
+
- type: updated_at
|
|
27
|
+
indices:
|
|
28
|
+
- columns:
|
|
29
|
+
- slug
|
|
30
|
+
isUnique: true
|
|
31
|
+
- columns:
|
|
32
|
+
- type_id
|
|
33
|
+
- columns:
|
|
34
|
+
- provider_id
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- type: slug
|
|
4
|
+
- name: type_id
|
|
5
|
+
type: fk
|
|
6
|
+
references:
|
|
7
|
+
table: integration_type
|
|
8
|
+
column: id
|
|
9
|
+
onDelete: CASCADE
|
|
10
|
+
- name: name
|
|
11
|
+
type: locale_varchar
|
|
12
|
+
length: 127
|
|
13
|
+
locale:
|
|
14
|
+
en: Name
|
|
15
|
+
pt: Nome
|
|
16
|
+
- type: created_at
|
|
17
|
+
- type: updated_at
|
|
18
|
+
indices:
|
|
19
|
+
- columns:
|
|
20
|
+
- slug
|
|
21
|
+
isUnique: true
|
|
22
|
+
- columns:
|
|
23
|
+
- type_id
|