Cleanup FieldKey const (#1404)

This commit is contained in:
Leendert de Borst
2025-12-02 14:36:08 +01:00
parent 5c160e79ed
commit 985ee2469e
22 changed files with 184 additions and 287 deletions

View File

@@ -266,16 +266,6 @@ declare const FieldKey: {
* Type: Text
*/
readonly IdentityCountry: "identity.country";
/**
* API key value field
* Type: Password
*/
readonly ApiKeyKey: "apikey.key";
/**
* API key type/provider field (e.g., "OpenAI", "Stripe")
* Type: Text
*/
readonly ApiKeyType: "apikey.type";
/**
* Alias email field
* Type: Email

View File

@@ -4,9 +4,6 @@
// src/vault/FieldKey.ts
var FieldKey = {
// ============================================================
// Login Fields
// ============================================================
/**
* Login username field
* Type: Text
@@ -32,9 +29,6 @@ var FieldKey = {
* Type: Text
*/
LoginRecoveryCodes: "login.recovery_codes",
// ============================================================
// Credit Card Fields
// ============================================================
/**
* Credit card number field
* Type: Text
@@ -65,9 +59,6 @@ var FieldKey = {
* Type: Password
*/
CardPin: "card.pin",
// ============================================================
// Identity Fields
// ============================================================
/**
* Identity title field (e.g., Mr., Mrs., Dr.)
* Type: Text
@@ -128,22 +119,6 @@ var FieldKey = {
* Type: Text
*/
IdentityCountry: "identity.country",
// ============================================================
// API Key Fields
// ============================================================
/**
* API key value field
* Type: Password
*/
ApiKeyKey: "apikey.key",
/**
* API key type/provider field (e.g., "OpenAI", "Stripe")
* Type: Text
*/
ApiKeyType: "apikey.type",
// ============================================================
// Alias Fields (Legacy - from old Alias table)
// ============================================================
/**
* Alias email field
* Type: Email

View File

File diff suppressed because one or more lines are too long

View File

File diff suppressed because one or more lines are too long

View File

@@ -830,7 +830,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -841,7 +841,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -888,7 +888,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -904,7 +904,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -919,7 +919,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -934,7 +934,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -953,7 +953,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -975,7 +975,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1067,7 +1067,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1945,7 +1945,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1956,7 +1956,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -2003,7 +2003,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2019,7 +2019,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2034,7 +2034,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2049,7 +2049,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2068,7 +2068,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2090,7 +2090,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2182,7 +2182,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -798,7 +798,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -809,7 +809,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -824,7 +824,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -840,7 +840,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -887,7 +887,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -902,7 +902,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -921,7 +921,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -943,7 +943,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1035,7 +1035,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1913,7 +1913,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1924,7 +1924,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1939,7 +1939,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1955,7 +1955,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2002,7 +2002,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2017,7 +2017,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2036,7 +2036,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2058,7 +2058,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2150,7 +2150,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -266,16 +266,6 @@ declare const FieldKey: {
* Type: Text
*/
readonly IdentityCountry: "identity.country";
/**
* API key value field
* Type: Password
*/
readonly ApiKeyKey: "apikey.key";
/**
* API key type/provider field (e.g., "OpenAI", "Stripe")
* Type: Text
*/
readonly ApiKeyType: "apikey.type";
/**
* Alias email field
* Type: Email

View File

@@ -4,9 +4,6 @@
// src/vault/FieldKey.ts
var FieldKey = {
// ============================================================
// Login Fields
// ============================================================
/**
* Login username field
* Type: Text
@@ -32,9 +29,6 @@ var FieldKey = {
* Type: Text
*/
LoginRecoveryCodes: "login.recovery_codes",
// ============================================================
// Credit Card Fields
// ============================================================
/**
* Credit card number field
* Type: Text
@@ -65,9 +59,6 @@ var FieldKey = {
* Type: Password
*/
CardPin: "card.pin",
// ============================================================
// Identity Fields
// ============================================================
/**
* Identity title field (e.g., Mr., Mrs., Dr.)
* Type: Text
@@ -128,22 +119,6 @@ var FieldKey = {
* Type: Text
*/
IdentityCountry: "identity.country",
// ============================================================
// API Key Fields
// ============================================================
/**
* API key value field
* Type: Password
*/
ApiKeyKey: "apikey.key",
/**
* API key type/provider field (e.g., "OpenAI", "Stripe")
* Type: Text
*/
ApiKeyType: "apikey.type",
// ============================================================
// Alias Fields (Legacy - from old Alias table)
// ============================================================
/**
* Alias email field
* Type: Email

View File

File diff suppressed because one or more lines are too long

View File

File diff suppressed because one or more lines are too long

View File

@@ -830,7 +830,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -841,7 +841,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -888,7 +888,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -904,7 +904,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -919,7 +919,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -934,7 +934,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -953,7 +953,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -975,7 +975,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1067,7 +1067,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1945,7 +1945,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1956,7 +1956,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -2003,7 +2003,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2019,7 +2019,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2034,7 +2034,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2049,7 +2049,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2068,7 +2068,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2090,7 +2090,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2182,7 +2182,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -798,7 +798,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -809,7 +809,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -824,7 +824,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -840,7 +840,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -887,7 +887,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -902,7 +902,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -921,7 +921,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -943,7 +943,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1035,7 +1035,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1913,7 +1913,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1924,7 +1924,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1939,7 +1939,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1955,7 +1955,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2002,7 +2002,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2017,7 +2017,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2036,7 +2036,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2058,7 +2058,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2150,7 +2150,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

File diff suppressed because one or more lines are too long

View File

File diff suppressed because one or more lines are too long

View File

@@ -830,7 +830,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -841,7 +841,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -888,7 +888,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -904,7 +904,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -919,7 +919,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -934,7 +934,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -953,7 +953,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -975,7 +975,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1067,7 +1067,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1945,7 +1945,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1956,7 +1956,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -2003,7 +2003,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2019,7 +2019,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2034,7 +2034,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2049,7 +2049,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2068,7 +2068,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2090,7 +2090,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2182,7 +2182,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -798,7 +798,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -809,7 +809,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -824,7 +824,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -840,7 +840,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -856,7 +856,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -872,7 +872,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -887,7 +887,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -902,7 +902,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -921,7 +921,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -943,7 +943,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1035,7 +1035,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1913,7 +1913,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1924,7 +1924,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1939,7 +1939,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1955,7 +1955,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -1971,7 +1971,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -1987,7 +1987,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2002,7 +2002,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2017,7 +2017,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2036,7 +2036,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2058,7 +2058,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2150,7 +2150,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -28,7 +28,6 @@ public class FieldDefinition : SyncableEntity
/// - login.username, login.password, login.notes, login.url
/// - card.number, card.cardholder_name, card.cvv
/// - identity.first_name, identity.email, identity.phone_numbers
/// - apikey.key, apikey.type
/// - alias.email, alias.first_name (legacy)
/// Custom fields have FieldKey = NULL and are identified by their GUID and Label.
/// </summary>
@@ -70,7 +69,7 @@ public class FieldDefinition : SyncableEntity
public int Weight { get; set; } = 0;
/// <summary>
/// Gets or sets the applicable item types as JSON array (e.g., '["Login","ApiKey"]').
/// Gets or sets the applicable item types as JSON array (e.g., '["Login","Identity"]').
/// Null means applicable to all types.
/// </summary>
public string? ApplicableToTypes { get; set; }

View File

@@ -293,7 +293,7 @@ namespace AliasClientDb.Migrations
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '[""Login""]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '[""Login""]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '[""Login"",""ApiKey""]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '[""Login""]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)

View File

@@ -792,7 +792,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -803,7 +803,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -818,7 +818,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -834,7 +834,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -850,7 +850,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -866,7 +866,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -881,7 +881,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -896,7 +896,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -915,7 +915,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -937,7 +937,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1029,7 +1029,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -121,7 +121,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -132,7 +132,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -147,7 +147,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -163,7 +163,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -179,7 +179,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -195,7 +195,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -210,7 +210,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -225,7 +225,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -244,7 +244,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -266,7 +266,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -358,7 +358,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";

View File

@@ -19,10 +19,6 @@
* ```
*/
export const FieldKey = {
// ============================================================
// Login Fields
// ============================================================
/**
* Login username field
* Type: Text
@@ -53,10 +49,6 @@ export const FieldKey = {
*/
LoginRecoveryCodes: 'login.recovery_codes',
// ============================================================
// Credit Card Fields
// ============================================================
/**
* Credit card number field
* Type: Text
@@ -93,10 +85,6 @@ export const FieldKey = {
*/
CardPin: 'card.pin',
// ============================================================
// Identity Fields
// ============================================================
/**
* Identity title field (e.g., Mr., Mrs., Dr.)
* Type: Text
@@ -169,26 +157,6 @@ export const FieldKey = {
*/
IdentityCountry: 'identity.country',
// ============================================================
// API Key Fields
// ============================================================
/**
* API key value field
* Type: Password
*/
ApiKeyKey: 'apikey.key',
/**
* API key type/provider field (e.g., "OpenAI", "Stripe")
* Type: Text
*/
ApiKeyType: 'apikey.type',
// ============================================================
// Alias Fields (Legacy - from old Alias table)
// ============================================================
/**
* Alias email field
* Type: Email

View File

@@ -799,7 +799,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -810,7 +810,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -825,7 +825,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -841,7 +841,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -857,7 +857,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -873,7 +873,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -888,7 +888,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -903,7 +903,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -922,7 +922,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -944,7 +944,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -1036,7 +1036,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";
@@ -1918,7 +1918,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'login.username', 'Item', 'Text', 'Username', 0, 'Visible', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.password', 'Item', 'Password', 'Password', 0, 'Hidden', 1, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.notes', 'Item', 'Text', 'Notes', 0, 'Collapsed', 0, 0, NULL, datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login","ApiKey"]', datetime('now'), datetime('now'), 0);
(lower(hex(randomblob(16))), 'login.url', 'Item', 'URL', 'Website URLs', 1, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
-- Alias fields
INSERT INTO FieldDefinitions (Id, FieldKey, EntityType, FieldType, Label, IsMultiValue, DefaultVisibility, EnableHistory, DisplayOrder, ApplicableToTypes, CreatedAt, UpdatedAt, IsDeleted)
@@ -1929,7 +1929,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
(lower(hex(randomblob(16))), 'alias.nickname', 'Item', 'Text', 'Nickname', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.gender', 'Item', 'Text', 'Gender', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0),
(lower(hex(randomblob(16))), 'alias.birthdate', 'Item', 'Date', 'Birth Date', 0, 'Visible', 0, 0, '["Login"]', datetime('now'), datetime('now'), 0);
INSERT INTO Items (Id, Name, ItemType, LogoId, FolderId, CreatedAt, UpdatedAt, IsDeleted)
@@ -1944,7 +1944,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
c.IsDeleted
FROM Credentials c
LEFT JOIN Services s ON s.Id = c.ServiceId;
INSERT INTO Logos (Id, Source, FileData, MimeType, FetchedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -1960,7 +1960,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Services s
WHERE s.Logo IS NOT NULL AND s.Url IS NOT NULL AND s.Url != ''
GROUP BY s.Url;
UPDATE Items
@@ -1976,7 +1976,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE c.Id = Items.Id AND s.Logo IS NOT NULL
);
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -1992,7 +1992,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Services s ON s.Id = c.ServiceId
WHERE s.Url IS NOT NULL AND s.Url != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2007,7 +2007,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Username IS NOT NULL AND c.Username != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2022,7 +2022,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
0 AS IsDeleted
FROM Credentials c
WHERE c.Notes IS NOT NULL AND c.Notes != '';
INSERT INTO FieldValues (Id, ItemId, FieldDefinitionId, Value, ValueIndex, CreatedAt, UpdatedAt, IsDeleted)
@@ -2041,7 +2041,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Passwords
GROUP BY CredentialId
) pm ON p.CredentialId = pm.CredentialId AND p.UpdatedAt = pm.MaxUpdated;
INSERT INTO FieldHistories (Id, ItemId, FieldDefinitionId, ValueSnapshot, ChangedAt, CreatedAt, UpdatedAt, IsDeleted)
@@ -2063,7 +2063,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
GROUP BY CredentialId
) pm ON p2.CredentialId = pm.CredentialId AND p2.UpdatedAt = pm.MaxUpdated
);
-- Migrate Alias.Email
@@ -2155,7 +2155,7 @@ CREATE UNIQUE INDEX "IX_Logos_Source" ON "Logos" ("Source");
FROM Credentials c
INNER JOIN Aliases a ON a.Id = c.AliasId
WHERE a.BirthDate IS NOT NULL AND a.BirthDate != '' AND a.BirthDate != '0001-01-01 00:00:00.000';
DROP TABLE "Passwords";