@sqlanvil/core 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/configs.proto CHANGED
@@ -87,6 +87,21 @@ message WorkflowSettings {
87
87
 
88
88
  // Optional. Named connections (warehouse + read-only sources).
89
89
  map<string, ConnectionConfig> connections = 18;
90
+
91
+ // Optional. Named environments (dev/staging/prod) selected with `--environment`.
92
+ map<string, Environment> environments = 19;
93
+ }
94
+
95
+ // A named environment (dev/staging/prod). Holds only NON-SECRET overrides plus a
96
+ // pointer to a gitignored credentials file — never secrets themselves.
97
+ message Environment {
98
+ string schema_suffix = 1;
99
+ map<string, string> vars = 2;
100
+ string default_database = 3;
101
+ string default_location = 4;
102
+ // Path (relative to the project dir) to this environment's gitignored
103
+ // .df-credentials file.
104
+ string credentials = 5;
90
105
  }
91
106
 
92
107
  // A named connection: the warehouse (read/write target) or a read-only source.
@@ -324,6 +339,9 @@ message ActionConfig {
324
339
  // Postgres and Supabase specific options.
325
340
  PostgresOptions postgres = 25;
326
341
  SupabaseOptions supabase = 26;
342
+
343
+ // MySQL/MariaDB specific options (engine/charset/collation + indexes).
344
+ MysqlOptions mysql = 27;
327
345
  }
328
346
 
329
347
  message Metadata {
@@ -539,6 +557,9 @@ message ActionConfig {
539
557
  // Postgres and Supabase specific options.
540
558
  PostgresOptions postgres = 28;
541
559
  SupabaseOptions supabase = 29;
560
+
561
+ // MySQL/MariaDB specific options (engine/charset/collation + indexes).
562
+ MysqlOptions mysql = 30;
542
563
  }
543
564
 
544
565
  message AssertionConfig {
@@ -953,6 +974,28 @@ message PostgresOptions {
953
974
  string refresh_policy = 7;
954
975
  }
955
976
 
977
+ // MySQL/MariaDB table options + secondary indexes. First cut: engine/charset/
978
+ // collation and plain/unique secondary indexes. (No partitioning, FULLTEXT/
979
+ // SPATIAL/prefix indexes, or row_format yet — those are later follow-ups.)
980
+ message MysqlOptions {
981
+ // Storage engine, emitted as ENGINE=<engine> (e.g. "InnoDB", "MyISAM").
982
+ // Omit to use the server default.
983
+ string engine = 1;
984
+ // Default character set, emitted as DEFAULT CHARSET=<charset> (e.g. "utf8mb4").
985
+ string charset = 2;
986
+ // Default collation, emitted as COLLATE=<collation> (e.g. "utf8mb4_unicode_ci").
987
+ string collation = 3;
988
+
989
+ message Index {
990
+ // Optional; when omitted, derived as <table>_<cols>_idx (or _key if unique),
991
+ // capped at 63 chars.
992
+ string name = 1;
993
+ repeated string columns = 2;
994
+ bool unique = 3;
995
+ }
996
+ repeated Index indexes = 4;
997
+ }
998
+
956
999
  // SupabaseOptions — Supabase-specific platform features layered on top of
957
1000
  // standard Postgres. Used as a peer of `postgres: {...}` for projects
958
1001
  // targeting `warehouse: { kind: supabase }`.
package/core.proto CHANGED
@@ -233,6 +233,7 @@ message Table {
233
233
  BigQueryOptions bigquery = 22;
234
234
  PostgresOptions postgres = 39;
235
235
  SupabaseOptions supabase = 40;
236
+ MysqlOptions mysql = 41;
236
237
 
237
238
  // Generated.
238
239
  string file_name = 18;
package/package.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "version": "1.5.0",
37
+ "version": "1.7.0",
38
38
  "name": "@sqlanvil/core",
39
39
  "description": "sqlanvil core API.",
40
40
  "main": "bundle.js"