ekwo-os 0.8.0 → 0.10.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/README.md +32 -16
- package/dist/assets/expected-objects.json +1614 -177
- package/dist/assets/migrations/20260923110000_an_archive_survives_being_printed_again.sql +648 -0
- package/dist/assets/migrations/20260928100000_schema_version_0_9_0.sql +42 -0
- package/dist/assets/migrations/20260929094126_a_setting_nobody_owns.sql +167 -0
- package/dist/assets/migrations/20260929103358_a_trail_no_client_rewrites.sql +190 -0
- package/dist/assets/migrations/20260929141500_a_bank_account_is_not_an_iban.sql +120 -0
- package/dist/assets/migrations/20260929151700_an_archive_is_read_under_the_names_of_today.sql +541 -0
- package/dist/assets/migrations/20260929170005_a_member_leaves.sql +241 -0
- package/dist/assets/migrations/20260930103815_a_key_holds_what_its_issuer_holds.sql +447 -0
- package/dist/assets/migrations/20261002065918_schema_version_0_10_0.sql +46 -0
- package/dist/assets/modules/corporate-tax/module.json +12 -0
- package/dist/assets/modules/corporate-tax/supabase/migrations/20260930104417_corporate_tax.sql +1746 -0
- package/dist/assets/modules/{assets → fixed-assets}/module.json +4 -4
- package/dist/assets/modules/fixed-assets/supabase/migrations/20260929151742_assets_schema_is_fixed_assets.sql +1081 -0
- package/dist/assets/modules/schema/module.1.json +3 -3
- package/dist/assets/seed/00_currencies.sql +42 -1
- package/dist/assets/seed/00_territories.sql +1264 -1
- package/dist/assets/seed/100_pack_uy.sql +735 -0
- package/dist/assets/seed/101_pack_ec.sql +534 -0
- package/dist/assets/seed/102_pack_bo.sql +565 -0
- package/dist/assets/seed/103_pack_py.sql +576 -0
- package/dist/assets/seed/104_pack_do.sql +540 -0
- package/dist/assets/seed/105_pack_cr.sql +582 -0
- package/dist/assets/seed/106_pack_gt.sql +602 -0
- package/dist/assets/seed/107_pack_pa.sql +634 -0
- package/dist/assets/seed/108_pack_in.sql +891 -0
- package/dist/assets/seed/109_pack_cn.sql +775 -0
- package/dist/assets/seed/10_pack_be.sql +15 -2
- package/dist/assets/seed/110_pack_ge.sql +537 -0
- package/dist/assets/seed/111_pack_md.sql +673 -0
- package/dist/assets/seed/112_pack_rs.sql +762 -0
- package/dist/assets/seed/113_pack_ba.sql +639 -0
- package/dist/assets/seed/114_pack_al.sql +735 -0
- package/dist/assets/seed/115_pack_mk.sql +592 -0
- package/dist/assets/seed/116_pack_me.sql +674 -0
- package/dist/assets/seed/117_pack_bh.sql +562 -0
- package/dist/assets/seed/118_pack_om.sql +606 -0
- package/dist/assets/seed/119_pack_gh.sql +622 -0
- package/dist/assets/seed/11_pack_fr.sql +13 -2
- package/dist/assets/seed/120_pack_tz.sql +583 -0
- package/dist/assets/seed/121_pack_ug.sql +582 -0
- package/dist/assets/seed/122_pack_rw.sql +588 -0
- package/dist/assets/seed/123_pack_xk.sql +568 -0
- package/dist/assets/seed/124_pack_kz.sql +601 -0
- package/dist/assets/seed/12_pack_lu.sql +3 -2
- package/dist/assets/seed/13_pack_ee.sql +3 -2
- package/dist/assets/seed/14_pack_gb.sql +25 -2
- package/dist/assets/seed/15_pack_us.sql +19 -2
- package/dist/assets/seed/16_pack_ie.sql +3 -2
- package/dist/assets/seed/17_pack_nl.sql +22 -3
- package/dist/assets/seed/18_pack_de.sql +10 -3
- package/dist/assets/seed/19_pack_es.sql +10 -3
- package/dist/assets/seed/20_pack_sn.sql +6 -3
- package/dist/assets/seed/21_pack_ci.sql +4 -3
- package/dist/assets/seed/22_pack_bj.sql +4 -3
- package/dist/assets/seed/23_pack_bf.sql +4 -3
- package/dist/assets/seed/24_pack_cm.sql +4 -3
- package/dist/assets/seed/25_pack_cf.sql +4 -3
- package/dist/assets/seed/26_pack_km.sql +4 -3
- package/dist/assets/seed/27_pack_cg.sql +4 -3
- package/dist/assets/seed/28_pack_ga.sql +4 -3
- package/dist/assets/seed/29_pack_gn.sql +2 -2
- package/dist/assets/seed/30_pack_gw.sql +4 -3
- package/dist/assets/seed/31_pack_gq.sql +4 -3
- package/dist/assets/seed/32_pack_ml.sql +4 -3
- package/dist/assets/seed/33_pack_ne.sql +4 -3
- package/dist/assets/seed/34_pack_cd.sql +2 -2
- package/dist/assets/seed/35_pack_td.sql +4 -3
- package/dist/assets/seed/36_pack_tg.sql +4 -3
- package/dist/assets/seed/37_pack_it.sql +3 -2
- package/dist/assets/seed/38_pack_id.sql +531 -0
- package/dist/assets/seed/39_pack_my.sql +625 -0
- package/dist/assets/seed/40_pack_au.sql +15 -2
- package/dist/assets/seed/41_pack_nz.sql +1 -1
- package/dist/assets/seed/42_pack_mx.sql +16 -3
- package/dist/assets/seed/43_pack_pt.sql +3 -2
- package/dist/assets/seed/44_pack_ph.sql +553 -0
- package/dist/assets/seed/45_pack_ar.sql +587 -0
- package/dist/assets/seed/46_pack_cl.sql +746 -0
- package/dist/assets/seed/47_pack_co.sql +579 -0
- package/dist/assets/seed/48_pack_pe.sql +632 -0
- package/dist/assets/seed/49_pack_ng.sql +620 -0
- package/dist/assets/seed/50_pack_sg.sql +10 -2
- package/dist/assets/seed/51_pack_jp.sql +3 -2
- package/dist/assets/seed/52_pack_hk.sql +1 -1
- package/dist/assets/seed/56_pack_th.sql +1 -1
- package/dist/assets/seed/57_pack_ua.sql +655 -0
- package/dist/assets/seed/58_pack_ca.sql +769 -0
- package/dist/assets/seed/60_pack_ae.sql +13 -2
- package/dist/assets/seed/61_pack_se.sql +785 -0
- package/dist/assets/seed/62_pack_ch.sql +3 -2
- package/dist/assets/seed/63_pack_at.sql +3 -2
- package/dist/assets/seed/64_pack_pl.sql +3 -2
- package/dist/assets/seed/65_pack_dk.sql +596 -0
- package/dist/assets/seed/66_pack_no.sql +585 -0
- package/dist/assets/seed/67_pack_fi.sql +612 -0
- package/dist/assets/seed/68_pack_cz.sql +680 -0
- package/dist/assets/seed/69_pack_sk.sql +663 -0
- package/dist/assets/seed/70_pack_hu.sql +629 -0
- package/dist/assets/seed/71_pack_sa.sql +3 -2
- package/dist/assets/seed/72_pack_ro.sql +755 -0
- package/dist/assets/seed/73_pack_bg.sql +562 -0
- package/dist/assets/seed/74_pack_hr.sql +717 -0
- package/dist/assets/seed/75_pack_si.sql +657 -0
- package/dist/assets/seed/76_pack_gr.sql +598 -0
- package/dist/assets/seed/77_pack_lt.sql +612 -0
- package/dist/assets/seed/78_pack_lv.sql +565 -0
- package/dist/assets/seed/79_pack_cy.sql +686 -0
- package/dist/assets/seed/80_pack_mt.sql +834 -0
- package/dist/assets/seed/81_pack_is.sql +533 -0
- package/dist/assets/seed/82_pack_tr.sql +664 -0
- package/dist/assets/seed/83_pack_eg.sql +547 -0
- package/dist/assets/seed/84_pack_ma.sql +666 -0
- package/dist/assets/seed/85_pack_tn.sql +610 -0
- package/dist/assets/seed/86_pack_dz.sql +693 -0
- package/dist/assets/seed/87_pack_il.sql +569 -0
- package/dist/assets/seed/88_pack_za.sql +682 -0
- package/dist/assets/seed/89_pack_ke.sql +596 -0
- package/dist/assets/seed/modules/corporate_tax/10_pack_be.sql +127 -0
- package/dist/assets/seed/modules/corporate_tax/11_pack_fr.sql +113 -0
- package/dist/assets/seed/modules/corporate_tax/14_pack_gb.sql +100 -0
- package/dist/assets/seed/modules/corporate_tax/15_pack_us.sql +97 -0
- package/dist/assets/seed/modules/corporate_tax/17_pack_nl.sql +82 -0
- package/dist/assets/seed/modules/corporate_tax/18_pack_de.sql +90 -0
- package/dist/assets/seed/modules/corporate_tax/19_pack_es.sql +111 -0
- package/dist/assets/seed/modules/corporate_tax/20_pack_sn.sql +111 -0
- package/dist/assets/seed/modules/corporate_tax/40_pack_au.sql +94 -0
- package/dist/assets/seed/modules/corporate_tax/42_pack_mx.sql +82 -0
- package/dist/assets/seed/modules/corporate_tax/49_pack_ng.sql +96 -0
- package/dist/assets/seed/modules/corporate_tax/50_pack_sg.sql +97 -0
- package/dist/assets/seed/modules/corporate_tax/60_pack_ae.sql +84 -0
- package/dist/assets/seed/modules/corporate_tax/88_pack_za.sql +87 -0
- package/dist/assets/seed/modules/{assets → fixed_assets}/10_pack_be.sql +6 -6
- package/dist/assets/seed/modules/{assets → fixed_assets}/11_pack_fr.sql +6 -6
- package/dist/assets/seed/modules/{assets → fixed_assets}/14_pack_gb.sql +6 -6
- package/dist/assets/seed/modules/{assets → fixed_assets}/15_pack_us.sql +6 -6
- package/dist/assets/seed/modules/fixed_assets/17_pack_nl.sql +59 -0
- package/dist/assets/seed/modules/fixed_assets/18_pack_de.sql +56 -0
- package/dist/assets/seed/modules/fixed_assets/19_pack_es.sql +66 -0
- package/dist/assets/seed/modules/fixed_assets/20_pack_sn.sql +57 -0
- package/dist/assets/seed/modules/fixed_assets/40_pack_au.sql +57 -0
- package/dist/assets/seed/modules/fixed_assets/42_pack_mx.sql +53 -0
- package/dist/assets/seed/modules/fixed_assets/49_pack_ng.sql +57 -0
- package/dist/assets/seed/modules/fixed_assets/50_pack_sg.sql +57 -0
- package/dist/assets/seed/modules/fixed_assets/60_pack_ae.sql +57 -0
- package/dist/assets/seed/modules/fixed_assets/88_pack_za.sql +58 -0
- package/dist/bootstrap.d.ts +26 -6
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +34 -15
- package/dist/bootstrap.js.map +1 -1
- package/dist/bundle.d.ts +4 -3
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +4 -3
- package/dist/bundle.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/import.d.ts +16 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +4 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +40 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/module.d.ts.map +1 -1
- package/dist/commands/module.js +17 -1
- package/dist/commands/module.js.map +1 -1
- package/dist/commands/pack.d.ts.map +1 -1
- package/dist/commands/pack.js +13 -4
- package/dist/commands/pack.js.map +1 -1
- package/dist/doctor.d.ts +22 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +112 -8
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/module/read.d.ts +20 -7
- package/dist/module/read.d.ts.map +1 -1
- package/dist/module/read.js +41 -14
- package/dist/module/read.js.map +1 -1
- package/dist/pack/compile.d.ts +23 -7
- package/dist/pack/compile.d.ts.map +1 -1
- package/dist/pack/compile.js +60 -27
- package/dist/pack/compile.js.map +1 -1
- package/dist/pack/corporate-tax.d.ts +164 -0
- package/dist/pack/corporate-tax.d.ts.map +1 -0
- package/dist/pack/corporate-tax.js +517 -0
- package/dist/pack/corporate-tax.js.map +1 -0
- package/dist/pack/describe.d.ts +10 -5
- package/dist/pack/describe.d.ts.map +1 -1
- package/dist/pack/describe.js +5 -3
- package/dist/pack/describe.js.map +1 -1
- package/dist/pack/read.d.ts +27 -11
- package/dist/pack/read.d.ts.map +1 -1
- package/dist/pack/read.js +112 -33
- package/dist/pack/read.js.map +1 -1
- package/dist/pack/territories.d.ts +1 -1
- package/dist/pack/territories.js +0 -0
- package/dist/pack/upgrade.d.ts +1 -1
- package/dist/pack/upgrade.js +1 -1
- package/dist/pack/vat-codes.d.ts +18 -18
- package/dist/pack/vat-codes.js +24 -24
- package/dist/pack/vat-codes.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/sql.d.ts.map +1 -1
- package/dist/sql.js +3 -1
- package/dist/sql.js.map +1 -1
- package/package.json +37 -10
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260913081447_assets.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260913104234_foreign_key_indexes.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260913104500_assets_capabilities.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260914122100_assets_round_at_the_currency.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260914145012_assets_accounts_in_use.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260914151530_assets_grants_its_own_rights.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260918113912_assets_client_reads.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260918150801_assets_leave_with_the_company.sql +0 -0
- /package/dist/assets/modules/{assets → fixed-assets}/supabase/migrations/20260922162600_assets_reference_for_a_known_caller.sql +0 -0
package/README.md
CHANGED
|
@@ -60,14 +60,15 @@ either.
|
|
|
60
60
|
It asks for the connection string, the country, the chart of accounts and
|
|
61
61
|
the language where the pack offers a choice, your organisation, the
|
|
62
62
|
currency, the first company, the address of the first administrator and —
|
|
63
|
-
optionally — the
|
|
63
|
+
optionally — the identifier of your main bank account (an IBAN, a routing number and an account number, a sort code… whatever your country's banks use), then does the rest. Five
|
|
64
64
|
to ten seconds on a free project. Nothing is preselected for you on the
|
|
65
65
|
three questions whose wrong answer is expensive: the country, the chart and
|
|
66
66
|
the language.
|
|
67
67
|
|
|
68
|
-
4. **Sign in** to your project as that administrator and start booking
|
|
69
|
-
the
|
|
70
|
-
generates from the schema,
|
|
68
|
+
4. **Sign in** to your project as that administrator and start booking — in
|
|
69
|
+
the web application, [Ekwo Cloud](https://cloud.ekwo.ai), which opens your
|
|
70
|
+
own instance, or through the REST API Supabase generates from the schema,
|
|
71
|
+
`psql` or `@ekwo-ai/core`.
|
|
71
72
|
|
|
72
73
|
5. **Do the four things below**, while the dashboard is still open. The
|
|
73
74
|
installer prints them at the end of a successful run, because three of them
|
|
@@ -89,7 +90,7 @@ npx -y ekwo-os@latest init \
|
|
|
89
90
|
--admin-email "you@example.com" \
|
|
90
91
|
--admin-password "a-long-password" \
|
|
91
92
|
--fiscal-year 2026 \
|
|
92
|
-
--
|
|
93
|
+
--bank-identifier "BE71096123456769" \
|
|
93
94
|
--yes
|
|
94
95
|
```
|
|
95
96
|
|
|
@@ -150,7 +151,7 @@ first administrator, `init_instance()` and `claim_instance_admin()`, and
|
|
|
150
151
|
nothing else. The instance row records no country. A flag that only describes
|
|
151
152
|
a company — `--country`, `--company`, `--chart`, `--language`, `--currency`,
|
|
152
153
|
`--fiscal-year`, `--fiscal-year-start`, `--vat-period`, `--filing-period`,
|
|
153
|
-
`--iban
|
|
154
|
+
`--bank-identifier` (and its old spelling `--iban`), `--bic`, `--bank-name` — is refused with it, exit code 2, before the
|
|
154
155
|
database is touched: it would describe nothing.
|
|
155
156
|
|
|
156
157
|
**`ekwo company new` is `create_company()`**, the function the `create_company`
|
|
@@ -273,7 +274,7 @@ and read by a person.
|
|
|
273
274
|
| 1 | Applies `supabase/migrations/*.sql` in order | Recorded in `supabase_migrations.schema_migrations`, the Supabase CLI's own history table, so `supabase db push` and `ekwo migrate` stay interchangeable |
|
|
274
275
|
| 2 | Applies every reference seed of `supabase/seed/`, in file-name order: `00_currencies.sql`, `00_territories.sql`, `05_framework_generic.sql`, then one `<n>_pack_<cc>.sql` per country pack, in the order of the number each pack declares | The currencies, the territories the tax rules name, the country-less financial statements every chart falls back on, and every country pack of the release — so a company in any of them can be created later without installing anything. They are exactly the seeds `supabase/config.toml` lists (a list `ekwo pack build` writes from `packs/`), so `supabase db push` installs the same set; a test compares both paths row by row. `90_demo_company.sql` is sample data and is never applied here |
|
|
275
276
|
| 3 | Creates the first administrator through the Supabase Auth admin API | See below: a database connection cannot be a signed-in user |
|
|
276
|
-
| 4 | `init_instance()`, `claim_instance_admin()`, the company, `company_members` as owner, `install_country_template()`, the first financial year, and the bank account when an
|
|
277
|
+
| 4 | `init_instance()`, `claim_instance_admin()`, the company, `company_members` as owner, `install_country_template()`, the first financial year, and the bank account when an identifier was given | The six steps of the root README, in the same order, plus the one thing nobody can derive |
|
|
277
278
|
| 5 | Writes `ekwo.json` | The installation: project URL and schema version. Nothing else, ever — no country, since each company carries its own. A file written by 0.6 or earlier also names a country; it is still read, and the key is taken for nothing |
|
|
278
279
|
| 6 | Asks whether to register with Ekwo | The default answer is no, and no is a supported answer forever |
|
|
279
280
|
|
|
@@ -323,7 +324,7 @@ instead if the account already exists, and no key is needed.
|
|
|
323
324
|
| `ekwo reverse <entry>` | Undoes a posted entry keyed by hand, through `reverse_entry()`: its mirror, posted and matched against it. By id or by number; `--date` as for `cancel`. |
|
|
324
325
|
| `ekwo payment record` | Money in or out, booked and matched. With `--doc`, against that document. |
|
|
325
326
|
| `ekwo match <transaction> <document>` | A bank statement line pays a document, through `settle_from_statement()`. |
|
|
326
|
-
| `ekwo import <source> <file>…` | Books kept elsewhere — `trial-balance`, `fec`, `journal-items`, `journal-report` — whole or not at all, through `import_books()`, with a correspondence of accounts and journals you save and give back; or a bank statement — `camt.053`, `coda`, `cfonb120` — as pending lines. `--dry-run` rehearses. See [taking over books](#taking-over-books-ekwo-import). |
|
|
327
|
+
| `ekwo import <source> <file>…` | Books kept elsewhere — `trial-balance`, `fec`, `journal-items`, `journal-report`, `transaction-journal`, `xaf` — whole or not at all, through `import_books()`, with a correspondence of accounts and journals you save and give back; or a bank statement — `camt.053`, `coda`, `cfonb120` — as pending lines. `--dry-run` rehearses. See [taking over books](#taking-over-books-ekwo-import). |
|
|
327
328
|
| `ekwo doc list` / `show` | What exists, and with `--unpaid` what is posted and still owed. See [keeping books](#keeping-books). |
|
|
328
329
|
|
|
329
330
|
There is no `eject`, because there is nothing to eject from. The schema is in
|
|
@@ -338,7 +339,7 @@ place, so the output reads the same in a file or a CI log — and takes `--json`
|
|
|
338
339
|
for a program.
|
|
339
340
|
|
|
340
341
|
`ekwo help --json` answers the list of commands and, in `usage`, the whole
|
|
341
|
-
text of `--help` without colour: every flag and variable, for an
|
|
342
|
+
text of `--help` without colour: every flag and variable, for an agent
|
|
342
343
|
that reads one document rather than a terminal.
|
|
343
344
|
|
|
344
345
|
Under `--json` the standard output is **one JSON document and nothing else**;
|
|
@@ -572,6 +573,8 @@ ekwo import fec 123456789FEC20251231.txt --mapping map.json --open-years
|
|
|
572
573
|
ekwo import trial-balance balance.csv --opening-date 2026-01-01 --dry-run --save-mapping map.json
|
|
573
574
|
ekwo import journal-items items.csv accounts.csv partners.csv --dry-run --save-mapping map.json
|
|
574
575
|
ekwo import journal-report report.csv chart.csv --date-order dmy --dry-run --save-mapping map.json
|
|
576
|
+
ekwo import transaction-journal journal.csv account-list.csv --date-order mdy --dry-run --save-mapping map.json
|
|
577
|
+
ekwo import xaf books.xaf --open-years --dry-run --save-mapping map.json
|
|
575
578
|
ekwo import camt.053 statement.xml # or coda, cfonb120: pending lines for `ekwo match`
|
|
576
579
|
```
|
|
577
580
|
|
|
@@ -581,6 +584,8 @@ ekwo import camt.053 statement.xml # or coda, cfonb120: pending
|
|
|
581
584
|
| `fec` | A *fichier des écritures comptables*: the eighteen columns of the arrêté of 29 July 2013, tab or bar separated |
|
|
582
585
|
| `journal-items` | The lines of every entry exported as CSV from the list view of an ERP whose ledger is a table of lines, with the chart of accounts and the partners exported beside it |
|
|
583
586
|
| `journal-report` | A journal report or a general ledger detail, saved as CSV from a cloud service's spreadsheet export, with its Journal ID and Account Code columns, and the chart and the contacts beside it |
|
|
587
|
+
| `transaction-journal` | A transaction journal, saved as CSV from a spreadsheet export: each transaction a run of rows under one date, type and number, closed by its total; the list of accounts beside it |
|
|
588
|
+
| `xaf` | An XML Audit File Financial, version 3.2 or 4.0: the accounts, the parties, the opening balance — on the day the file gives it — and every transaction of a year, in one file |
|
|
584
589
|
| `camt.053`, `coda`, `cfonb120` | A bank statement: its lines, pending, ready for `ekwo match` |
|
|
585
590
|
|
|
586
591
|
Each reader is a brick of [`packages/formats/`](../formats/README.md), named
|
|
@@ -666,13 +671,15 @@ for a statement. [`docs/import.md`](../../docs/import.md) is the long form.
|
|
|
666
671
|
|
|
667
672
|
## `ekwo module`
|
|
668
673
|
|
|
669
|
-
A module is a Postgres schema beside the socle — `
|
|
670
|
-
`budgets` for a plan against the ledger
|
|
671
|
-
|
|
674
|
+
A module is a Postgres schema beside the socle — `fixed_assets` for fixed assets,
|
|
675
|
+
`budgets` for a plan against the ledger, `tax` for the corporate income tax
|
|
676
|
+
estimated from the books. Its migrations travel with this package, and
|
|
677
|
+
`ekwo migrate` applies them by default.
|
|
672
678
|
|
|
673
679
|
```sh
|
|
674
680
|
ekwo module list # what this release carries, and what the database holds
|
|
675
681
|
ekwo module migrate [<code>] # the migrations, and the country seeds they need
|
|
682
|
+
# (the code, `assets`, or the folder, `fixed-assets`)
|
|
676
683
|
ekwo module enable assets --company "…" # turn it on for one company
|
|
677
684
|
ekwo module disable assets --company "…" # turn it off; nothing it wrote is deleted
|
|
678
685
|
```
|
|
@@ -688,6 +695,14 @@ schemas. That is a setting of the API, not of the database, so `ekwo module
|
|
|
688
695
|
enable` prints the line to add — Supabase dashboard → Project Settings → API,
|
|
689
696
|
or `[api] schemas` in `supabase/config.toml`.
|
|
690
697
|
|
|
698
|
+
**When a release renames a module's schema**, `ekwo migrate` applies the
|
|
699
|
+
rename and says so: the exposed schemas of the project still name the old one,
|
|
700
|
+
and only the operator can change that. The fixed assets module moved from
|
|
701
|
+
`assets` to `fixed_assets` in its version 2.0.0 — replace one with the other in
|
|
702
|
+
Project Settings → API. Its code, `assets`, is what `ekwo module` takes, and
|
|
703
|
+
never changes; [`modules/fixed-assets/README.md`](../../modules/fixed-assets/README.md#upgrading-from-version-1-of-the-module)
|
|
704
|
+
is the whole upgrade.
|
|
705
|
+
|
|
691
706
|
**Before `supabase db push`**, run `ekwo migrate --no-modules`. The Supabase
|
|
692
707
|
CLI knows the socle's migration files and not a module's, so it would report
|
|
693
708
|
them as history it has no file for.
|
|
@@ -814,7 +829,8 @@ statements, the sentences the country requires on an invoice, the translations,
|
|
|
814
829
|
and a year of books with the figures it produces. The compiler turns one into
|
|
815
830
|
`supabase/seed/<n>_pack_<cc>.sql`, which is committed — and, where a pack
|
|
816
831
|
carries a section for a module, into
|
|
817
|
-
`supabase/seed/modules/<
|
|
832
|
+
`supabase/seed/modules/<section>/<n>_pack_<cc>.sql` — `fixed_assets` for the
|
|
833
|
+
fixed assets module — applied by the module
|
|
818
834
|
migration runner and by nothing else.
|
|
819
835
|
|
|
820
836
|
```sh
|
|
@@ -915,8 +931,8 @@ dashboard under Connect → Session pooler, is the form that is never derived.
|
|
|
915
931
|
| `--fiscal-year-start <date>` | The day that year opens, as `YYYY-MM-DD`. Needed only where the pack names no usual opening month (`defaults.fiscal_year_default`). |
|
|
916
932
|
| `--currency <code>` | Currency of the company. Defaults to the pack's `defaults.currency`. |
|
|
917
933
|
| `--language <xx>` | Language of the books, two letters. Defaults to `country_defaults.language_default`, which the pack fills. It decides which label of the pack lands on each account; the others are kept in `name_i18n`. |
|
|
918
|
-
| `--
|
|
919
|
-
| `--bic <bic>` | Optional, on that account. |
|
|
934
|
+
| `--bank-identifier <value>` | Creates the main bank account, wired to the bank journal and its ledger account. What it is written in is the country's: an IBAN, an ABA routing number and an account number (`"021000021 123456789"`), a sort code and an account number, a BSB, an IFSC, a CLABE… `ekwo pack describe <cc>` names it, and it is checked. A country whose pack declares none is asked for an account number as the bank wrote it. `--iban` is the old spelling and is refused where the banks do not use IBANs. Omitted, no bank account is created and `ekwo doctor` says so. |
|
|
935
|
+
| `--bic <bic>` | Optional, on that account, for a bank that has one. |
|
|
920
936
|
| `--bank-name <name>` | Optional. It also names the account in the books. |
|
|
921
937
|
| `--demo` | Also load the sample company. |
|
|
922
938
|
| `--register` | Register without being asked. `--register-email` sets the address. |
|
|
@@ -1060,7 +1076,7 @@ node packages/cli/dist/bin.js init \
|
|
|
1060
1076
|
--country BE --chart default --language fr \
|
|
1061
1077
|
--org "Scratch" --company "Scratch BV" \
|
|
1062
1078
|
--admin-email "you@example.com" --admin-password "a-long-password" \
|
|
1063
|
-
--fiscal-year 2026 --
|
|
1079
|
+
--fiscal-year 2026 --bank-identifier "BE71096123456769" --yes
|
|
1064
1080
|
|
|
1065
1081
|
# 2. Everything should be green, and nothing pending.
|
|
1066
1082
|
node packages/cli/dist/bin.js status --db-url "$URL"
|