saveTidbManagedState function

Future<void> saveTidbManagedState(
  1. Map<String, dynamic> state, {
  2. String environment = "prod",
})

Saves TiDB managed state without writing secrets into Worker sources.

Implementation

Future<void> saveTidbManagedState(
  Map<String, dynamic> state, {
  String environment = "prod",
}) async {
  final file = File(tidbManagedStatePathFor(environment));
  await file.parent.create(recursive: true);
  final temporary = File("${file.path}.tmp");
  await temporary.writeAsString(YamlWriter().write(state));
  try {
    await temporary.rename(file.path);
  } on FileSystemException {
    await file.writeAsString(await temporary.readAsString());
    await temporary.delete();
  }
}