clear container data on exit
This commit is contained in:
@@ -193,4 +193,8 @@ class ContainerDao extends DatabaseAccessor<TabDatabase>
|
||||
Selectable<SiteAssignment> allAssignedSites() {
|
||||
return db.definitionsDrift.allAssignedSites();
|
||||
}
|
||||
|
||||
Selectable<String?> containersToClearOnExit() {
|
||||
return db.definitionsDrift.containersToClearOnExit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,10 +310,17 @@ siteAssignedContainerId:
|
||||
);
|
||||
|
||||
allAssignedSites WITH SiteAssignment:
|
||||
SELECT
|
||||
SELECT
|
||||
container.id,
|
||||
COALESCE(container.metadata ->> '$.contextualIdentity', 'general') AS contextualIdentity,
|
||||
COALESCE(container.metadata ->> '$.contextualIdentity', 'general') AS contextualIdentity,
|
||||
value AS assigned_site
|
||||
FROM container
|
||||
CROSS JOIN json_each(container.metadata, '$.assignedSites')
|
||||
WHERE value IS NOT NULL;
|
||||
|
||||
containersToClearOnExit:
|
||||
SELECT container.metadata ->> '$.contextualIdentity' AS contextual_identity
|
||||
FROM container
|
||||
WHERE
|
||||
json_extract(container.metadata, '$.clearDataOnExit') = 1
|
||||
AND container.metadata ->> '$.contextualIdentity' IS NOT NULL;
|
||||
|
||||
@@ -2383,6 +2383,14 @@ class DefinitionsDrift extends i7.ModularAccessor {
|
||||
);
|
||||
}
|
||||
|
||||
i0.Selectable<String?> containersToClearOnExit() {
|
||||
return customSelect(
|
||||
'SELECT container.metadata ->> \'\$.contextualIdentity\' AS contextual_identity FROM container WHERE json_extract(container.metadata, \'\$.clearDataOnExit\') = 1 AND container.metadata ->> \'\$.contextualIdentity\' IS NOT NULL',
|
||||
variables: [],
|
||||
readsFrom: {container},
|
||||
).map((i0.QueryRow row) => row.readNullable<String>('contextual_identity'));
|
||||
}
|
||||
|
||||
i3.TabFts get tabFts => i7.ReadDatabaseContainer(
|
||||
attachedDatabase,
|
||||
).resultSet<i3.TabFts>('tab_fts');
|
||||
|
||||
@@ -73,6 +73,9 @@ class ContainerMetadata with FastEquatable {
|
||||
@JsonKey(defaultValue: false)
|
||||
final bool useProxy;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
final bool clearDataOnExit;
|
||||
|
||||
final List<Uri>? assignedSites;
|
||||
|
||||
ContainerMetadata({
|
||||
@@ -80,6 +83,7 @@ class ContainerMetadata with FastEquatable {
|
||||
required this.contextualIdentity,
|
||||
required this.authSettings,
|
||||
required this.useProxy,
|
||||
required this.clearDataOnExit,
|
||||
required this.assignedSites,
|
||||
});
|
||||
|
||||
@@ -88,12 +92,14 @@ class ContainerMetadata with FastEquatable {
|
||||
String? contextualIdentity,
|
||||
ContainerAuthSettings? authSettings,
|
||||
bool? useProxy,
|
||||
bool? clearDataOnExit,
|
||||
List<Uri>? assignedSites,
|
||||
}) : this(
|
||||
iconData: iconData,
|
||||
contextualIdentity: contextualIdentity,
|
||||
authSettings: authSettings ?? ContainerAuthSettings.withDefaults(),
|
||||
useProxy: useProxy ?? false,
|
||||
clearDataOnExit: clearDataOnExit ?? false,
|
||||
assignedSites: assignedSites,
|
||||
);
|
||||
|
||||
@@ -108,6 +114,7 @@ class ContainerMetadata with FastEquatable {
|
||||
contextualIdentity,
|
||||
authSettings,
|
||||
useProxy,
|
||||
clearDataOnExit,
|
||||
assignedSites,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -98,6 +98,8 @@ abstract class _$ContainerMetadataCWProxy {
|
||||
|
||||
ContainerMetadata useProxy(bool useProxy);
|
||||
|
||||
ContainerMetadata clearDataOnExit(bool clearDataOnExit);
|
||||
|
||||
ContainerMetadata assignedSites(List<Uri>? assignedSites);
|
||||
|
||||
/// Creates a new instance with the provided field values.
|
||||
@@ -112,6 +114,7 @@ abstract class _$ContainerMetadataCWProxy {
|
||||
String? contextualIdentity,
|
||||
ContainerAuthSettings authSettings,
|
||||
bool useProxy,
|
||||
bool clearDataOnExit,
|
||||
List<Uri>? assignedSites,
|
||||
});
|
||||
}
|
||||
@@ -137,6 +140,10 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
|
||||
@override
|
||||
ContainerMetadata useProxy(bool useProxy) => call(useProxy: useProxy);
|
||||
|
||||
@override
|
||||
ContainerMetadata clearDataOnExit(bool clearDataOnExit) =>
|
||||
call(clearDataOnExit: clearDataOnExit);
|
||||
|
||||
@override
|
||||
ContainerMetadata assignedSites(List<Uri>? assignedSites) =>
|
||||
call(assignedSites: assignedSites);
|
||||
@@ -154,6 +161,7 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
|
||||
Object? contextualIdentity = const $CopyWithPlaceholder(),
|
||||
Object? authSettings = const $CopyWithPlaceholder(),
|
||||
Object? useProxy = const $CopyWithPlaceholder(),
|
||||
Object? clearDataOnExit = const $CopyWithPlaceholder(),
|
||||
Object? assignedSites = const $CopyWithPlaceholder(),
|
||||
}) {
|
||||
return ContainerMetadata(
|
||||
@@ -174,6 +182,12 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
|
||||
? _value.useProxy
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: useProxy as bool,
|
||||
clearDataOnExit:
|
||||
clearDataOnExit == const $CopyWithPlaceholder() ||
|
||||
clearDataOnExit == null
|
||||
? _value.clearDataOnExit
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: clearDataOnExit as bool,
|
||||
assignedSites: assignedSites == const $CopyWithPlaceholder()
|
||||
? _value.assignedSites
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
@@ -311,6 +325,7 @@ ContainerMetadata _$ContainerMetadataFromJson(Map<String, dynamic> json) =>
|
||||
json['authSettings'] as Map<String, dynamic>,
|
||||
),
|
||||
useProxy: json['useProxy'] as bool? ?? false,
|
||||
clearDataOnExit: json['clearDataOnExit'] as bool? ?? false,
|
||||
assignedSites: (json['assignedSites'] as List<dynamic>?)
|
||||
?.map((e) => Uri.parse(e as String))
|
||||
.toList(),
|
||||
@@ -326,6 +341,7 @@ Map<String, dynamic> _$ContainerMetadataToJson(
|
||||
'contextualIdentity': instance.contextualIdentity,
|
||||
'authSettings': instance.authSettings.toJson(),
|
||||
'useProxy': instance.useProxy,
|
||||
'clearDataOnExit': instance.clearDataOnExit,
|
||||
'assignedSites': instance.assignedSites?.map((e) => e.toString()).toList(),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user