Files
adam-acs/inertia/locales/en.json
T
Kevin L'Hereec 991173aa05 feat(auth): add session login page, API key guard, and remove orphan SQL migrations
- Add session-based authentication for web-UI (Login.vue, AuthController)
- Add AuthSessionMiddleware: redirects unauthenticated users to /login
- Add ApiKeyMiddleware: validates X-Api-Key header on all /api/v1 routes
- Add BasicAuthMiddleware: registered for future M2M use
- Use timingSafeEqual for all credential comparisons (timing attack prevention)
- Regenerate session ID on login (session fixation prevention)
- Validate redirect target after login (open redirect prevention)
- Require WEBUI_USERNAME, WEBUI_PASSWORD, API_KEY as mandatory env vars
- Share auth.username/authenticated via Inertia shared props
- Add user dropdown in navbar (avatar icon + username + logout)
- Add login i18n keys in fr.json and en.json
- Remove orphan SQL migrations (users, auth_access_tokens) and @adonisjs/lucid
2026-07-03 13:59:05 +02:00

263 lines
8.4 KiB
JSON

{
"header": {
"title": "ADAM ACS",
"devices": "Devices",
"configurations": "Configurations",
"firmware": "Firmware",
"commands": "Commands",
"tr069Trace": "TR-069 Trace"
},
"titles": {
"devices": "Devices",
"device": "Device",
"deviceDetail": "Device Detail",
"configurations": "Configurations",
"commands": "Commands",
"commandsFleet": "Fleet Commands",
"discoveryCreate": "Create Discovery Configuration",
"provisioningCreate": "Create Provisioning Configuration",
"firmware": "Firmware Catalog",
"trace": "TR-069 Trace"
},
"labels": {
"manufacturer": "Manufacturer",
"productClass": "Product Class",
"serialNumber": "Serial Number",
"externalIP": "External IP",
"softwareVersion": "Software Version",
"identifier": "Identifier",
"creationDate": "Creation Date",
"createdAt": "Created At",
"lastSeen": "Last Seen",
"status": "Status",
"action": "Action",
"mode": "Mode",
"priority": "Priority",
"parameters": "Parameters",
"properties": "Properties",
"name": "Name",
"value": "Value",
"type": "Type",
"discovery": "Discovery",
"provisioning": "Provisioning",
"deviceIdentifier": "Device Identifier",
"version": "Version",
"policy": "Policy",
"enabled": "Enabled",
"disabled": "Disabled",
"tags": "Tags",
"updatedAt": "Updated",
"search": "Search",
"general": "General",
"matchingCriteria": "Matching Criteria",
"inventoryPaths": "Inventory Paths",
"desiredParameters": "Desired Parameters",
"newConfiguration": "New Configuration",
"results": "result(s)",
"loading": "Loading…",
"noResults": "No configurations found.",
"parameterName": "Parameter name",
"once": "Once",
"maintain": "Maintain",
"firmwareEntries": "Firmware Entries",
"migrationRoutes": "Migration Routes",
"firmwareDetails": "Firmware Details",
"noFirmwareEntries": "No firmware entries found.",
"noMigrationRoutes": "No migration routes defined.",
"newFirmwareEntry": "New Entry",
"editFirmwareEntry": "Edit Entry",
"addRoute": "Add Route",
"fileSize": "File Size (bytes)",
"checksumType": "Checksum Type",
"firmwareUrl": "Firmware URL",
"checksum": "Checksum",
"filterByProductClass": "Filter by product class…",
"saveChanges": "Save changes",
"hardwareVersion": "Hardware version",
"devices": "Devices"
},
"button": {
"refresh": "Refresh",
"getModel": "Get Model",
"delete": "Delete",
"edit": "Edit",
"create": "Create",
"send": "Send",
"cancel": "Cancel",
"confirm": "Confirm",
"fleetManagement": "Fleet Management ({count})",
"addModelPath": "Add Path",
"addParameter": "Add Parameter",
"previous": "Previous",
"next": "Next"
},
"checkbox": {
"selectAll": "Select All",
"selectRow": "Select row {index}"
},
"placeholder": {
"search": "Search...",
"modelPath": "e.g. InternetGatewayDevice.DeviceInfo."
},
"options": {
"NI": "Non-Immediate (NI)",
"I": "Immediate (I)"
},
"modal": {
"confirmDelete": "Confirm Deletion",
"confirmDeleteMessage": "Are you sure you want to delete this item?",
"getModel": "Get Model"
},
"footer": {
"legal": "Legal Notice",
"privacy": "Privacy Policy"
},
"language": {
"fr": "Français",
"en": "English"
},
"criteriaEditor": {
"deviceId": "Device Identity",
"standardParams": "Standard Parameters",
"customCriteria": "Custom Conditions",
"customCriteriaHelp": "Match devices where known parameter values equal the expected values",
"addCondition": "+ Add condition",
"noConditions": "No parameter conditions — matches all devices passing DeviceId criteria above.",
"paramCriteriaWarning": "If a parameter is not yet known on the device, this configuration will not match. A lower-priority configuration without this condition should run first to discover the parameter via its inventory. Avoid using the same path in both criteria and desired parameters — this risks a deadlock.",
"knownValue": "known value",
"knownValues": "known values",
"fields": {
"manufacturer": {
"label": "Manufacturer",
"placeholder": "e.g. Sagemcom or Sagemcom*",
"help": "Exact match or glob pattern (* ?)"
},
"oui": {
"label": "OUI",
"placeholder": "e.g. 00E0FC or 00*",
"help": "Organizationally Unique Identifier"
},
"productClass": {
"label": "Product Class",
"placeholder": "e.g. BM632w or BM*",
"help": "Supports glob patterns"
},
"serialNumber": {
"label": "Serial Number",
"placeholder": "e.g. ABC12345 or ABC*",
"help": "Supports glob patterns"
}
},
"presets": {
"modelName": "Model Name",
"hardwareVersion": "Hardware Version",
"softwareVersion": "Software Version",
"modelNamePlaceholder": "e.g. BM632w",
"hardwareVersionPlaceholder": "e.g. V3R1",
"softwareVersionPlaceholder": "e.g. 1.2.3"
}
},
"configDetail": {
"tabGeneral": "General",
"tabCriteria": "Criteria",
"tabInventory": "Inventory",
"tabParameters": "Parameters",
"tabCompliance": "Compliance",
"tabHistory": "History",
"totalDevices": "Matching devices",
"compliant": "Compliant",
"nonCompliant": "Non-compliant",
"noMatchingDevices": "No devices match this configuration criteria.",
"loadCompliance": "Load compliance report",
"complianceError": "Error loading compliance report.",
"dryRunError": "Error during dry run.",
"firmwareSkipped": "firmware outside schedule window",
"paramDiffs": "Parameter differences",
"currentValue": "Current value",
"targetValue": "Target value",
"notSet": "(not set)",
"noParamDiffs": "No parameter differences.",
"firmwarePath": "Firmware migration path",
"parameter": "Parameter",
"expectedValue": "Expected value",
"noCriteria": "No criteria defined.",
"parameterConditions": "Parameter conditions",
"noInventoryPaths": "No inventory paths defined.",
"noParameters": "No parameters defined.",
"noHistory": "No history available.",
"date": "Date",
"close": "Close"
},
"device": {
"identity": "Identity",
"identifier": "Identifier",
"versions": "Versions",
"system": "System",
"nextConnection": "Next connection",
"clientReferences": "Client references",
"deleteDevice": "Delete device",
"confirmDeleteMessage": "Confirm deletion of",
"exchanges": "TR-069 Exchanges",
"enableTracing": "Enable tracing",
"tracingActive": "Tracing active"
},
"trace": {
"tracedDevices": "Traced devices",
"description": "Enable tracing on a device then click \"View\" to see live exchanges.",
"deviceId": "Device ID",
"started": "Started",
"remove": "Remove",
"enableTracing": "Enable tracing",
"editJson": "Edit JSON",
"editConfig": "Tracing configuration",
"formatJson": "Format",
"saveApply": "Save",
"expectedFormat": "Expected format:",
"notTraced": "This device is not traced yet.",
"noTracedDevices": "No traced devices."
},
"sequence": {
"cpe": "CPE",
"acs": "ACS",
"emptyPost": "Empty POST",
"session": "Session",
"goTo": "Go to…",
"clear": "Clear",
"clearExchanges": "Clear exchanges",
"connected": "Connected",
"paused": "Paused",
"disconnected": "Disconnected",
"resumeScroll": "Resume auto-scroll",
"allLoaded": "All messages loaded",
"loading": "Loading…",
"noExchanges": "No exchanges recorded. SOAP messages will appear here on the next CPE connection.",
"confirmClear": "Are you sure you want to delete all recorded exchanges for this device? This action is irreversible.",
"confirmClearTitle": "Clear exchanges"
},
"inspector": {
"title": "Inspector",
"selectMessage": "Select a message to see its content.",
"direction": "Direction",
"method": "Method",
"session": "Session",
"timestamp": "Timestamp",
"rawXml": "Raw XML"
},
"common": {
"confirm": "Confirm",
"cancel": "Cancel",
"close": "Close",
"actions": "Actions",
"selected": "selected"
},
"login": {
"subtitle": "Auto-Configuration Server",
"username": "Username",
"password": "Password",
"signIn": "Sign in",
"signingIn": "Signing in…",
"invalidCredentials": "Invalid username or password.",
"logout": "Sign out"
}
}