feat(127): erli integration foundation
Phase 127 complete: - add global Erli settings schema and encrypted API key repository - add real read-only Erli API connection test and settings UI - expose Erli in integrations hub and update PAUL/docs state
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
CREATE TABLE IF NOT EXISTS `erli_integration_settings` (
|
||||
`id` TINYINT UNSIGNED NOT NULL PRIMARY KEY,
|
||||
`integration_id` INT UNSIGNED NULL,
|
||||
`api_key_encrypted` TEXT NULL,
|
||||
`account_label` VARCHAR(128) NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY `erli_integration_settings_integration_unique` (`integration_id`),
|
||||
CONSTRAINT `erli_integration_settings_integration_fk`
|
||||
FOREIGN KEY (`integration_id`) REFERENCES `integrations` (`id`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
INSERT INTO `integrations` (`type`, `name`, `base_url`, `timeout_seconds`, `is_active`, `created_at`, `updated_at`)
|
||||
VALUES ('erli', 'Erli', 'https://erli.pl/svc/shop-api', 15, 1, NOW(), NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`base_url` = VALUES(`base_url`),
|
||||
`timeout_seconds` = VALUES(`timeout_seconds`),
|
||||
`updated_at` = VALUES(`updated_at`);
|
||||
|
||||
INSERT INTO `erli_integration_settings` (`id`, `integration_id`, `created_at`, `updated_at`)
|
||||
SELECT 1, `id`, NOW(), NOW()
|
||||
FROM `integrations`
|
||||
WHERE `type` = 'erli' AND `name` = 'Erli'
|
||||
LIMIT 1
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`integration_id` = VALUES(`integration_id`),
|
||||
`updated_at` = VALUES(`updated_at`);
|
||||
Reference in New Issue
Block a user