Compare commits

...

1773 Commits

Author SHA1 Message Date
Jan Prochazka 0547aa2095 xml format indent 2025-02-28 10:20:18 +01:00
Nybkox 322907b972 feat: add themes to xml view 2025-02-27 17:12:27 +01:00
Nybkox 189b9a7ad6 feat: add xml-formatter 2025-02-27 15:55:06 +01:00
SPRINX0\prochazka 1d02927f6b scroll in xml cell data view 2025-02-27 12:44:34 +01:00
CI workflows 2ad739419a chore: auto-update github workflows 2025-02-27 09:06:11 +00:00
SPRINX0\prochazka 093ace1a89 updated build version 2025-02-27 10:05:45 +01:00
SPRINX0\prochazka 4c982a762b v6.2.1-premium-beta.9 2025-02-27 09:33:08 +01:00
SPRINX0\prochazka a30efd6e81 allow SQLite on web #956 2025-02-27 09:26:38 +01:00
SPRINX0\prochazka 1c0fc0bff2 removed onsolete code 2025-02-27 08:21:13 +01:00
SPRINX0\prochazka 7da0c204df Merge branch 'feature/impexp' 2025-02-27 08:20:05 +01:00
SPRINX0\prochazka a35421d8ab import fixed 2025-02-27 08:19:49 +01:00
SPRINX0\prochazka 450ce53dcf import WIP 2025-02-26 16:43:24 +01:00
SPRINX0\prochazka e80ccfcb19 fixed open query from datagrid 2025-02-26 13:37:21 +01:00
SPRINX0\prochazka 9ad612bd78 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-26 10:26:03 +01:00
CI workflows 288857999f Update pro ref 2025-02-26 09:25:50 +00:00
SPRINX0\prochazka 217823652c v6.2.1-beta.8 2025-02-26 10:24:32 +01:00
SPRINX0\prochazka 268e1670c7 v6.2.1-premium-beta.7 2025-02-26 10:23:53 +01:00
SPRINX0\prochazka ce7b155f72 remove armv7l app build 2025-02-26 10:20:56 +01:00
SPRINX0\prochazka 2a71d84580 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-26 10:14:03 +01:00
CI workflows 8f73dce934 chore: auto-update github workflows 2025-02-26 09:13:58 +00:00
CI workflows 5953e32988 Update ref to 6b5b092b9da447d89e64b30bfa2910833bf73312 2025-02-26 09:13:38 +00:00
SPRINX0\prochazka df74322b05 v6.2.1-premium-beta.6 2025-02-26 10:02:05 +01:00
SPRINX0\prochazka 22d941ae45 v6.2.1-beta.5 2025-02-26 08:37:19 +01:00
CI workflows 4fd7c1c4e9 chore: auto-update github workflows 2025-02-26 07:37:04 +00:00
SPRINX0\prochazka ee1aa6d42c workflow change 2025-02-26 08:36:39 +01:00
SPRINX0\prochazka 1343aba26e try to fix docker build 2025-02-26 08:33:50 +01:00
SPRINX0\prochazka 1483d84d8c v6.2.1-beta.4 2025-02-25 18:38:49 +01:00
CI workflows 02d58d66c9 chore: auto-update github workflows 2025-02-25 17:38:32 +00:00
SPRINX0\prochazka 2eb6ca28f7 full container - removed linux/arm/v7 docker platform 2025-02-25 18:38:12 +01:00
SPRINX0\prochazka 7575a9ce02 v6.2.1-beta.3 2025-02-25 18:17:00 +01:00
CI workflows 039b832be2 chore: auto-update github workflows 2025-02-25 17:16:32 +00:00
SPRINX0\prochazka e0ed025507 added setup qemu 2025-02-25 18:15:52 +01:00
SPRINX0\prochazka f2bd08f02a mixed mongoDB export #1044 2025-02-25 17:59:31 +01:00
SPRINX0\prochazka 63314b54bc v6.2.1-premium-beta.2 2025-02-25 17:24:36 +01:00
SPRINX0\prochazka 65165cd15f v6.2.1-beta.1 2025-02-25 16:58:44 +01:00
SPRINX0\prochazka d5ddbca067 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-25 15:20:07 +01:00
SPRINX0\prochazka 517027e1fe SYNC: clearTestingData 2025-02-25 15:19:58 +01:00
SPRINX0\prochazka b843ccc898 SYNC: skip AI test 2025-02-25 14:11:43 +00:00
SPRINX0\prochazka fffd81267d SYNC: sqlite - passed transaction test 2025-02-25 14:11:41 +00:00
SPRINX0\prochazka 7d26dd5348 upgraded better-sqlite3 2025-02-25 14:33:56 +01:00
Jan Prochazka a4d3189dac import models tests fixed 2025-02-25 13:58:03 +01:00
SPRINX0\prochazka ec02743f83 SYNC: test fix 2025-02-25 11:38:55 +00:00
CI workflows 10e807751a chore: auto-update github workflows 2025-02-25 11:18:31 +00:00
SPRINX0\prochazka a8e827b5e2 fixed port for e2e-mssql 2025-02-25 12:18:11 +01:00
CI workflows f0eaba5857 chore: auto-update github workflows 2025-02-25 11:13:14 +00:00
SPRINX0\prochazka 7516b056a5 fixed workflow 2025-02-25 12:12:56 +01:00
CI workflows 312c3b8295 chore: auto-update github workflows 2025-02-25 11:09:55 +00:00
SPRINX0\prochazka 0a777dc909 fix 2025-02-25 12:09:36 +01:00
CI workflows ec24376608 chore: auto-update github workflows 2025-02-25 11:06:08 +00:00
SPRINX0\prochazka c9f45da217 fix 2025-02-25 12:05:10 +01:00
SPRINX0\prochazka 34cfbabf51 fix 2025-02-25 11:05:29 +01:00
SPRINX0\prochazka f7e7a4c99c fix 2025-02-25 11:02:09 +01:00
SPRINX0\prochazka 58c318b5cf process templates fix 2025-02-25 11:00:31 +01:00
SPRINX0\prochazka 10b1644d8d fix 2025-02-25 10:57:22 +01:00
SPRINX0\prochazka 599f59fc39 test change 2025-02-25 10:55:35 +01:00
SPRINX0\prochazka da4b8f6cb9 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-25 10:53:19 +01:00
SPRINX0\prochazka 5f2e882ed9 process templates 2025-02-25 10:53:13 +01:00
CI workflows f20abe8878 Update ref to 83c1c85eb2761a642c17b2f0f882970718e0afca 2025-02-25 09:45:10 +00:00
SPRINX0\prochazka a6ab37f21c SYNC: transaction test works for oracle 2025-02-25 09:28:12 +00:00
SPRINX0\prochazka 13fc3ee25e SYNC: fixed test 2025-02-25 09:28:11 +00:00
SPRINX0\prochazka 2268086eac SYNC: autocommit icons 2025-02-25 09:28:10 +00:00
SPRINX0\prochazka 9e9dec5389 SYNC: autocommit for Oracle 2025-02-25 09:28:08 +00:00
SPRINX0\prochazka 11d193a6dd SYNC: commit/rollback - control commands 2025-02-25 09:28:07 +00:00
SPRINX0\prochazka f81207737c SYNC: INSERT SQL template 2025-02-25 09:28:06 +00:00
SPRINX0\prochazka 191c25a26b SYNC: autocommit WIP 2025-02-24 16:13:12 +00:00
Jan Prochazka 9c7727b7f3 oracle insert bulk inserts fix 2025-02-24 16:28:19 +01:00
Jan Prochazka 8bea9b8312 import data fixes 2025-02-24 16:14:51 +01:00
SPRINX0\prochazka 805a063fa1 SYNC: fixes 2025-02-24 15:14:22 +00:00
SPRINX0\prochazka 20a1cc89ae SYNC: import model+data test 2025-02-24 14:27:20 +00:00
SPRINX0\prochazka 963994b1e5 SYNC: some fixes 2025-02-24 14:19:17 +00:00
SPRINX0\prochazka afcb226111 SYNC: mutli-sql tests 2025-02-24 13:18:52 +00:00
SPRINX0\prochazka 5b246fe44c SYNC: multi tests 2025-02-24 12:46:20 +00:00
SPRINX0\prochazka d79f82e9b8 SYNC: fixed test 2025-02-24 12:27:03 +00:00
SPRINX0\prochazka bdd9dc8c9d SYNC: multi-sql 2025-02-24 11:21:02 +00:00
Veronika Kincova 8bdd24aa1e SYNC: [skip ci] Drop table test 2025-02-24 10:23:50 +00:00
Veronika Kincova 13c0da5c8a SYNC: [skip ci] Only fix 2025-02-24 10:07:07 +00:00
Veronika Kincova d31cfb15db SYNC: [skip ci] Backup - Truncate table test 2025-02-24 10:07:02 +00:00
SPRINX0\prochazka 8453bd3c26 SYNC: [skip ci] cy:open in root 2025-02-24 08:25:41 +00:00
SPRINX0\prochazka 457bf311c3 Commit/rollback in query editor #1039 2025-02-21 17:30:16 +01:00
SPRINX0\prochazka ea2ec9ef54 refresh testid 2025-02-21 16:50:59 +01:00
SPRINX0\prochazka d0c84ea469 better workflow for askUser, when closing window 2025-02-21 16:11:23 +01:00
SPRINX0\prochazka cdec56b661 SYNC: [skip ci] Show server name alongside database name in title of the tab group #1041 2025-02-21 14:08:32 +00:00
SPRINX0\prochazka 8bc2d7cb05 update ref 2025-02-21 13:42:11 +01:00
SPRINX0\prochazka 21f3de0a18 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-21 13:30:42 +01:00
SPRINX0\prochazka 65b497c9f1 update pro ref 2025-02-21 13:30:40 +01:00
SPRINX0\prochazka f37f1e794e SYNC: [skip ci] fixed FK joining #1051 2025-02-21 12:04:30 +00:00
SPRINX0\prochazka 0096a40132 removed obsolete query designer 2025-02-21 12:50:53 +01:00
SPRINX0\prochazka b6b9b67836 fixed crash after filtering mongo array columns #1049 2025-02-21 12:38:22 +01:00
SPRINX0\prochazka 2b80a98a96 fix 2025-02-21 12:28:15 +01:00
SPRINX0\prochazka 8c5d47bfa0 run with push 2025-02-21 10:37:18 +01:00
SPRINX0\prochazka 00c0a0505f run with push 2025-02-21 10:28:17 +01:00
SPRINX0\prochazka 01ba8b4f3f commit info 2025-02-21 10:24:42 +01:00
SPRINX0\prochazka 919249215b fix 2025-02-21 10:20:41 +01:00
SPRINX0\prochazka a62394a67c changed used secret 2025-02-21 10:13:56 +01:00
SPRINX0\prochazka 332fff279b fix 2025-02-21 09:53:20 +01:00
SPRINX0\prochazka 27df4c435f use different secret 2025-02-21 09:52:30 +01:00
SPRINX0\prochazka a9998ebca7 tmp 2025-02-21 09:38:23 +01:00
SPRINX0\prochazka 82a8baabef fix 2025-02-21 09:37:17 +01:00
SPRINX0\prochazka 2af6d4ef29 fix 2025-02-21 09:35:56 +01:00
SPRINX0\prochazka c2526c1e2d diflow config 2025-02-21 09:31:35 +01:00
SPRINX0\prochazka 6021fa721e diflow CI 2025-02-19 16:44:13 +01:00
SPRINX0\prochazka 0bd59dc0f8 filter by column data type fix 2025-02-17 11:29:31 +01:00
Jan Prochazka 1af0c34ac0 Merge branch 'master' of github.com:dbgate/dbgate 2025-02-15 09:35:28 +01:00
Jan Prochazka 77f5b6d0c8 cassandra in readme 2025-02-15 09:34:53 +01:00
SPRINX0\prochazka cb3fdf1112 changelog 2025-02-14 15:05:45 +01:00
SPRINX0\prochazka 482d3d9188 v6.2.0 2025-02-14 14:56:52 +01:00
SPRINX0\prochazka bb4c64f478 v6.1.7-premium-beta.10 2025-02-14 14:34:52 +01:00
SPRINX0\prochazka a9d6e42add changelog 2025-02-14 14:34:08 +01:00
SPRINX0\prochazka 5fa6cf8eca Revert "build zip for mac (for autoupgrade)"
This reverts commit 6388129e27.
2025-02-14 14:27:19 +01:00
SPRINX0\prochazka 7c0de7b634 v6.1.7-beta.9 2025-02-14 14:06:13 +01:00
SPRINX0\prochazka 691f3238c5 v6.1.7-premium-beta.8 2025-02-14 14:05:56 +01:00
SPRINX0\prochazka 43163c787d renamed file 2025-02-14 14:04:25 +01:00
SPRINX0\prochazka a86693d950 v6.1.7-premium-beta.7 2025-02-14 13:56:07 +01:00
SPRINX0\prochazka 6388129e27 build zip for mac (for autoupgrade) 2025-02-14 13:55:47 +01:00
SPRINX0\prochazka 7788806a8d update pro ref 2025-02-14 13:50:07 +01:00
SPRINX0\prochazka 30037dad83 better connection error reporting 2025-02-14 13:27:56 +01:00
SPRINX0\prochazka d49c7d5e45 workflows 2025-02-14 12:49:11 +01:00
SPRINX0\prochazka 502109cdcb publish new plugins 2025-02-14 12:48:17 +01:00
SPRINX0\prochazka 3de775a163 ai assistant UX 2025-02-14 12:28:02 +01:00
SPRINX0\prochazka d4de917895 AI UX 2025-02-14 08:57:20 +01:00
SPRINX0\prochazka 35cb718f1f last used actions changed in switch button 2025-02-13 16:23:18 +01:00
SPRINX0\prochazka 60a72f4d45 fix data grid join problem #565 2025-02-13 15:54:40 +01:00
SPRINX0\prochazka 6ae536d035 datagrid: open real query in case of error 2025-02-13 15:47:55 +01:00
SPRINX0\prochazka 23daa7a91c fixes 2025-02-13 15:32:36 +01:00
SPRINX0\prochazka 771f93b5fa updated pro ref 2025-02-13 14:35:31 +01:00
SPRINX0\prochazka 19826636c7 uncommented builds 2025-02-12 14:03:49 +01:00
SPRINX0\prochazka 57ba9b52ba v6.1.7-packer-beta.6 2025-02-12 13:57:26 +01:00
SPRINX0\prochazka 38c0d9bbc3 pro update 2025-02-12 13:57:01 +01:00
SPRINX0\prochazka 5fb3e0b941 v6.1.7-packer-beta.5 2025-02-12 13:43:41 +01:00
SPRINX0\prochazka 9aa09d138a update pro ref 2025-02-12 13:43:19 +01:00
SPRINX0\prochazka f48efcc02d fix 2025-02-12 13:42:58 +01:00
SPRINX0\prochazka 1703e9e8c6 v6.1.7-packer-beta.4 2025-02-12 12:05:53 +01:00
SPRINX0\prochazka 940cf02935 build cloud 2025-02-12 12:05:40 +01:00
SPRINX0\prochazka 355aefc62a delete old azure VMs 2025-02-12 12:02:06 +01:00
SPRINX0\prochazka 0c0c9b2dad v6.1.7-packer-beta.3 2025-02-12 10:38:00 +01:00
SPRINX0\prochazka d3df844917 update pro ref 2025-02-12 10:37:36 +01:00
SPRINX0\prochazka e227f1f182 build script 2025-02-12 10:36:54 +01:00
SPRINX0\prochazka f97b49bc53 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-02-12 09:47:50 +01:00
SPRINX0\prochazka 788b6def6c azure ubuntu support 2025-02-12 09:47:44 +01:00
Jan Prochazka 8550707485 Merge pull request #1038 from dbgate/feature/xml-preview
feat: add xml preview
2025-02-11 17:03:18 +01:00
Nybkox aa8dfa1c87 feat: add xml preview 2025-02-11 16:51:39 +01:00
Jan Prochazka 7b68dd0f47 Merge pull request #1037 from dbgate/feature/fix-modal-scroll
style(ModalBase): keep header and footer in place, scroll only content
2025-02-11 12:20:41 +01:00
Nybkox f4c9c880bc style(ModalBase): keep header and footer in place, scroll only content 2025-02-11 12:19:04 +01:00
Jan Prochazka cac3e6efec Merge pull request #1036 from dbgate/feature/fix-mysql-triggers-creation
fix: correct sql for creating new trigger in ui for mysql
2025-02-11 12:16:03 +01:00
Nybkox d76786e344 fix: correct sql for creating new trigger in ui for mysql 2025-02-11 11:59:35 +01:00
Nybkox 171b967cc4 style(ModalBase): add max-height to normal modals 2025-02-11 11:54:31 +01:00
SPRINX0\prochazka b5766494e1 try to fix cypress test 2025-02-11 10:54:44 +01:00
SPRINX0\prochazka b72af50a85 v6.1.7-premium-beta.2 2025-02-11 10:45:39 +01:00
Jan Prochazka 63b66fe301 Merge pull request #1010 from dbgate/feature/cassandra
Feature/cassandra
2025-02-11 10:40:03 +01:00
Nybkox 244cb79774 fix: conditionally remove table aliases from column expressions 2025-02-11 09:54:55 +01:00
SPRINX0\prochazka 8d20b7d19f Merge branch 'master' into feature/cassandra 2025-02-11 08:37:15 +01:00
SPRINX0\prochazka dc9da0b866 data modification test 2025-02-11 08:22:59 +01:00
Jan Prochazka 3b72a9751c fixed import test for oracle 2025-02-10 16:48:10 +01:00
SPRINX0\prochazka bb3cb23ee0 Merge branch 'master' into feature/cassandra 2025-02-10 15:27:45 +01:00
SPRINX0\prochazka 737436d7e7 fix 2025-02-10 15:23:32 +01:00
SPRINX0\prochazka bccfa79bb6 ref update 2025-02-10 15:23:14 +01:00
SPRINX0\prochazka 6bf5c58ec1 fix 2025-02-10 15:22:49 +01:00
SPRINX0\prochazka 151230098c fix 2025-02-10 14:29:10 +01:00
SPRINX0\prochazka 5debd8e115 fix 2025-02-10 14:28:52 +01:00
SPRINX0\prochazka 83633536db Merge branch 'master' into feature/cassandra 2025-02-10 14:23:16 +01:00
SPRINX0\prochazka c187d902d2 Merge branch 'ai-assistant' 2025-02-10 14:19:46 +01:00
SPRINX0\prochazka cf4cc37f66 pro ref 2025-02-10 14:18:27 +01:00
SPRINX0\prochazka 5205839e18 AI assistant e2e test 2025-02-10 14:17:22 +01:00
SPRINX0\prochazka 1e05b0a659 save ai assistant state 2025-02-10 12:58:30 +01:00
SPRINX0\prochazka f6b52592fd ask for send data 2025-02-10 12:44:29 +01:00
SPRINX0\prochazka ae8e46e024 refactor SQL 2025-02-10 11:26:57 +01:00
SPRINX0\prochazka 89df96ffd5 ai 2025-02-10 10:21:43 +01:00
SPRINX0\prochazka a8a3cf729f fix 2025-02-07 17:46:43 +01:00
SPRINX0\prochazka 3d14ca302f call complete on cursor 2025-02-07 17:22:24 +01:00
SPRINX0\prochazka 0ba040a28c bulma improvement 2025-02-07 17:21:42 +01:00
SPRINX0\prochazka 69b775a49d fix 2025-02-07 15:53:36 +01:00
SPRINX0\prochazka 93895f3d6f expanded cell view 2025-02-07 14:34:56 +01:00
SPRINX0\prochazka 8103c26ca8 tiny db structure 2025-02-07 13:36:14 +01:00
SPRINX0\prochazka 825abf82e6 deep partial deef 2025-02-06 13:04:15 +01:00
Nybkox e2547c7295 feat: add test for importing data to an existing table 2025-02-06 11:11:06 +01:00
Nybkox 359557e321 feat: pass dataType to bulk insert value put 2025-02-06 11:09:14 +01:00
Nybkox 94cccf9e17 fix(cassandra): check column name correctly 2025-02-06 11:05:24 +01:00
Nybkox 13e4c2de03 fix(createBulkInsertStreamBase): save checked structure 2025-02-06 11:04:41 +01:00
Nybkox 844d7025fa feat(cassandra): parse error line from message 2025-02-06 10:38:12 +01:00
Nybkox 0f01f35d19 fix(cassandra): use put raw for numeric data types 2025-02-06 10:09:19 +01:00
Nybkox 505c219cfd chore: remove test logging 2025-02-06 09:49:14 +01:00
Nybkox c40d745a3a fix: update deploy databse skip tests conditions 2025-02-06 09:43:46 +01:00
Nybkox 13ee14c752 fix: do not insert second id column 2025-02-06 09:39:49 +01:00
Nybkox 1d1e488755 feat: add cassandra to workflows 2025-02-06 09:18:38 +01:00
Nybkox d9537e5fd4 feat: run cassandra tests on ci 2025-02-06 09:15:23 +01:00
Nybkox 5fc5497a9e fix(table-create): remove nullable if engine skips nullability 2025-02-06 09:15:23 +01:00
Nybkox fd70df0f43 feat(cassandara): forceSortStructureColumns 2025-02-06 09:15:23 +01:00
Nybkox c16d47473d feat: add forceSortStructureColumns for test engines 2025-02-06 09:15:23 +01:00
Nybkox f5e2300460 fix(cassandra): use text type for string in table anylyse 2025-02-06 09:15:23 +01:00
Nybkox 73a3e8d498 fix(cassandra): ignore default value if engine skips it in table analyse 2025-02-06 09:15:23 +01:00
Nybkox bb38b93927 feat: add forceSortResults for cassandra 2025-02-06 09:15:23 +01:00
Nybkox 979f2c7dac fix: do not insert another pk if there is no uuid pk 2025-02-06 09:15:23 +01:00
Nybkox 808b774ad1 fix: create sql based on engine config in table-analyse 2025-02-06 09:15:23 +01:00
Nybkox 38ce62185e fix(cassandra): do not add 2nd id column 2025-02-06 09:15:23 +01:00
Nybkox ac4e411d41 feat: skip delpoy tests 2025-02-06 09:15:23 +01:00
Nybkox fdc784f42d feat: skip data duplicator for cassandra 2025-02-06 09:15:23 +01:00
Nybkox edcaf585ea refactor: remove redundant conditions 2025-02-06 09:15:23 +01:00
Nybkox cdafe7e5f2 fix: force columns sorting when comparing 2025-02-06 09:15:23 +01:00
Nybkox 40cfe63b6f fix: skipDataModifications for cassandra 2025-02-06 09:15:23 +01:00
Nybkox 2fee584da9 fix: skip auto increment for cassandra 2025-02-06 09:15:23 +01:00
Nybkox 8b1d8d6d71 chore: add missing types for test engings exports 2025-02-06 09:15:23 +01:00
Nybkox f63b61681f feat: force usage of text type for strings in cassandra tests 2025-02-06 09:15:23 +01:00
Nybkox de4cea86da feat: skip order by for cassandra 2025-02-06 09:15:23 +01:00
Nybkox c0ca84f347 fix: prevent setting autoincrement when it is disabled in dialect 2025-02-06 09:15:23 +01:00
Nybkox 9c5a2c79f5 feat: add recordset and row zipping for cassandra query 2025-02-06 09:15:23 +01:00
Nybkox 8359746f47 feat: basic cassandra tests setup 2025-02-06 09:15:23 +01:00
Nybkox 516393856d feat: add TestEngineInfo typing 2025-02-06 09:15:23 +01:00
Nybkox e7e57414b5 fix: update sheduler events info typing 2025-02-06 09:15:23 +01:00
Nybkox 687669330d fix: set createColumnWithColumnKeyword to false for cassandra 2025-02-06 09:15:23 +01:00
Nybkox d3147d3969 feat: add dropDatabse to cassandra dumper 2025-02-06 09:15:23 +01:00
Nybkox ca8b7911a6 fix: do not filter keyspaces 2025-02-06 09:15:23 +01:00
Nybkox 3d23a13c34 fix: remove port from cassandra 2025-02-06 09:15:23 +01:00
Nybkox cf8a104183 fix: use keyspace and replication in createDatabase command for cassandra 2025-02-06 09:15:23 +01:00
Nybkox bd7aa7884a fix: update engines typing after rebase 2025-02-06 09:15:23 +01:00
Nybkox f2db514e45 feat: generateDefaultValueForUuid, set 'uuid()' for cassandra 2025-02-06 09:15:23 +01:00
Nybkox d35801dcc7 feat: disable renaming tables for cassandra 2025-02-06 09:15:23 +01:00
Nybkox 50f9e025c4 fix: remove old way of adding way uuids 2025-02-06 09:15:23 +01:00
SPRINX0\prochazka 09fa3ce438 feat: dumper data type handling 2025-02-06 09:15:23 +01:00
Nybkox bcf89b1f09 WIP 2025-02-06 09:15:23 +01:00
Nybkox 645a1d35e8 feat: add omitTableAliases to sql dialect 2025-02-06 09:15:23 +01:00
Nybkox 1154eff459 feat: allow specifing dbhan client type 2025-02-06 09:15:23 +01:00
SPRINX0\prochazka f6dcc4bb1f AI refactor 2025-02-06 08:34:21 +01:00
SPRINX0\prochazka babfcb6108 AI assistant 2025-02-05 18:56:00 +01:00
SPRINX0\prochazka 07a2e2fa26 Merge branch 'master' into ai-assistant 2025-02-05 15:01:50 +01:00
SPRINX0\prochazka d6ffafb640 DBF icon fixed 2025-02-05 14:25:07 +01:00
SPRINX0\prochazka 3cc0be7e72 v6.1.7-premium-beta.1 2025-02-05 13:22:30 +01:00
SPRINX0\prochazka a6bd3eed52 update pro ref 2025-02-05 13:21:43 +01:00
SPRINX0\prochazka ac2128dcde azure managed identity support 2025-02-05 13:05:02 +01:00
SPRINX0\prochazka 6c8cf8e327 update pro ref 2025-02-05 10:28:51 +01:00
SPRINX0\prochazka 920788febb OAuth test 2025-02-05 10:28:11 +01:00
SPRINX0\prochazka 07a803a687 try to fix e2e tests 2025-02-05 09:17:11 +01:00
SPRINX0\prochazka 1f1d84d7c8 updated pro ref 2025-02-05 09:05:37 +01:00
SPRINX0\prochazka a093fc1285 Merge branch 'hotfix/6.1.5' 2025-02-05 09:01:21 +01:00
SPRINX0\prochazka e76c563471 changelog 2025-02-04 17:05:20 +01:00
SPRINX0\prochazka fa6388ee6b v6.1.6 2025-02-04 17:04:26 +01:00
SPRINX0\prochazka fe2e5bc82e v6.1.6-premium-beta.1 2025-02-04 16:48:47 +01:00
SPRINX0\prochazka e361cb0113 v6.1.6-premuim-beta.1 2025-02-04 16:48:17 +01:00
SPRINX0\prochazka a12875fde3 dbgate-pro repo ref 2025-02-04 16:48:02 +01:00
SPRINX0\prochazka fed8b1be3e Merge branch 'hotfix/6.1.5' 2025-02-04 16:30:14 +01:00
SPRINX0\prochazka b3b94bfb3f 6.1.5 changelog 2025-02-04 16:12:00 +01:00
SPRINX0\prochazka 8e4308bea8 v6.1.5 2025-02-04 16:07:33 +01:00
SPRINX0\prochazka 86736c289b security problem fix #1029 2025-02-04 16:05:25 +01:00
SPRINX0\prochazka 49149643ef tests for hotfix branches 2025-02-04 16:04:45 +01:00
SPRINX0\prochazka c21cd4b18f security problem fix #1029 2025-02-04 16:01:50 +01:00
SPRINX0\prochazka d3dd1c3afc query fmt func 2025-02-04 15:44:16 +01:00
SPRINX0\prochazka 969876e87b fix 2025-02-04 12:55:30 +01:00
SPRINX0\prochazka 846f63a708 compare model fix 2025-02-04 08:55:11 +01:00
SPRINX0\prochazka 91fcf4bd72 query assistant WIP 2025-02-04 08:54:56 +01:00
SPRINX0\prochazka f62462fcc5 AI assistant place 2025-02-03 17:38:15 +01:00
SPRINX0\prochazka d2192c4772 v6.1.5-beta.3 2025-02-03 14:43:32 +01:00
SPRINX0\prochazka 4d8952d3ee try to fix #1025 2025-02-03 14:43:08 +01:00
SPRINX0\prochazka 0f36ea7b58 v6.1.5-premium-beta.2 2025-02-03 13:55:55 +01:00
SPRINX0\prochazka 4556f81ed8 SSL connection fix 2025-02-03 13:38:33 +01:00
SPRINX0\prochazka d59e8ea2df v6.1.5-premium-beta.1 2025-01-31 15:19:07 +01:00
SPRINX0\prochazka eec3a679aa fix 2025-01-31 14:09:21 +01:00
SPRINX0\prochazka 098a6025a8 export screenshot 2025-01-31 13:58:39 +01:00
SPRINX0\prochazka cdd1c34bc2 admin screenshots 2025-01-31 10:32:52 +01:00
SPRINX0\prochazka cd90b53627 next tests + next test DBs 2025-01-31 08:47:16 +01:00
SPRINX0\prochazka d16de0d2fb next E2E tests 2025-01-30 13:38:35 +01:00
SPRINX0\prochazka 1406e54894 job names 2025-01-30 08:24:02 +01:00
SPRINX0\prochazka 0618694220 fix 2025-01-30 08:22:08 +01:00
SPRINX0\prochazka 56c86bde30 test fix 2025-01-30 08:20:41 +01:00
SPRINX0\prochazka 93dc48c22c generate screenshots 2025-01-30 08:07:27 +01:00
SPRINX0\prochazka 9309f25126 removed e2e tests from run-tests workflow 2025-01-29 16:02:10 +01:00
SPRINX0\prochazka f22adf3cc8 screenshot=>themeshot 2025-01-29 15:40:41 +01:00
SPRINX0\prochazka bee7ec0cc7 next screenshots 2025-01-29 15:33:57 +01:00
SPRINX0\prochazka 8d19fae16a fix 2025-01-29 12:14:51 +01:00
SPRINX0\prochazka b8a51083f8 next e2e tests 2025-01-29 10:59:20 +01:00
SPRINX0\prochazka 9baecaba86 fix 2025-01-29 08:53:21 +01:00
SPRINX0\prochazka d8de4da059 fix 2025-01-29 08:41:06 +01:00
SPRINX0\prochazka 302fc2c832 fix 2025-01-29 08:40:07 +01:00
SPRINX0\prochazka e552be8634 fix 2025-01-29 08:38:43 +01:00
SPRINX0\prochazka 425ed5a3f4 E2E tests 2025-01-29 08:27:15 +01:00
SPRINX0\prochazka 07021ae760 e2e tests data 2025-01-28 18:40:14 +01:00
SPRINX0\prochazka 9e06944fe7 generate screenshots 2025-01-28 18:01:36 +01:00
SPRINX0\prochazka 707ccf2d21 data 2025-01-28 13:25:33 +01:00
SPRINX0\prochazka 569b3f5e56 nexte E2E test DBS 2025-01-28 12:48:07 +01:00
SPRINX0\prochazka f0812d74d6 screenshots fix 2025-01-28 10:52:56 +01:00
SPRINX0\prochazka 13a5addc43 debug print 2025-01-28 10:14:23 +01:00
SPRINX0\prochazka 2fc926861f screenshots fix 2025-01-28 09:47:40 +01:00
SPRINX0\prochazka b6f76c5194 removed console log 2025-01-27 16:49:05 +01:00
SPRINX0\prochazka 51cd639671 load field values fix #1009 2025-01-27 16:47:44 +01:00
SPRINX0\prochazka 35362fbc9b fix 2025-01-27 14:42:12 +01:00
SPRINX0\prochazka 2b5858f81a screenshots action 2025-01-27 14:40:39 +01:00
SPRINX0\prochazka 8290100b80 v6.1.4 2025-01-27 12:52:11 +01:00
SPRINX0\prochazka 578e2d3928 changelog 2025-01-27 11:15:50 +01:00
SPRINX0\prochazka 4e5f320777 v6.1.4-beta.3 2025-01-27 11:07:39 +01:00
SPRINX0\prochazka 6b64928a4c Fixed CASE problem in ACE sql-server mode 2025-01-27 11:07:24 +01:00
SPRINX0\prochazka 7f95674113 changelog WIP 2025-01-27 11:04:25 +01:00
SPRINX0\prochazka f47d082a0d v6.1.4-beta.2 2025-01-27 10:50:17 +01:00
SPRINX0\prochazka a68a81b339 Show Data/Structure button in one place #1015 2025-01-27 10:40:38 +01:00
SPRINX0\prochazka e0cf8026ef tab preview mode UX 2025-01-27 10:03:46 +01:00
SPRINX0\prochazka a1db648318 Data view coloring (every second row) #1014 2025-01-27 09:32:17 +01:00
SPRINX0\prochazka 81ad7eac62 v6.1.4-beta.1 2025-01-24 16:13:09 +01:00
SPRINX0\prochazka 6c9913abaa fixed: Cannot expand tables and views returned from search #1000 2025-01-24 16:12:55 +01:00
SPRINX0\prochazka e84af5af96 fixed Pin icon misplaced #1007 2025-01-24 14:59:09 +01:00
SPRINX0\prochazka e574667651 better display of ObjectId on JSON view 2025-01-24 14:33:22 +01:00
SPRINX0\prochazka 4944bc4bca expand all, collapse all commands 2025-01-24 14:27:05 +01:00
SPRINX0\prochazka c09c5e588a default action settings fix 2025-01-24 12:22:11 +01:00
SPRINX0\prochazka 893b072454 remove log 2025-01-24 12:02:43 +01:00
SPRINX0\prochazka ba971e4a67 mongodb json view default collection page size #976 2025-01-24 11:47:53 +01:00
Jan Prochazka 82be1df5bf Merge pull request #1011 from dbgate/feature/null-safety-to-sql-generator
fix: ensure extract always return an array
2025-01-23 15:09:23 +01:00
Nybkox abf5227b47 fix: ensure extract always return an array 2025-01-23 12:20:55 +01:00
SPRINX0\prochazka 0d3e39c479 SSL support for redis #691 2025-01-22 18:42:14 +01:00
SPRINX0\prochazka d16bc83af0 Merge branch 'feature/redis-key-navigation' 2025-01-22 17:45:01 +01:00
SPRINX0\prochazka 79a246217a redis key selection by keyboard 2025-01-22 17:44:46 +01:00
SPRINX0\prochazka 4ea718b662 redis key navigation 2025-01-22 17:13:33 +01:00
SPRINX0\prochazka 41e5089ab3 redis key loading refactor 2025-01-22 16:35:54 +01:00
SPRINX0\prochazka db86ae627f Merge branch 'feature/redis' 2025-01-22 09:41:03 +01:00
SPRINX0\prochazka 576fa40c1a redis key load optimalization 2025-01-22 09:40:49 +01:00
SPRINX0\prochazka 8287d5e400 redis loading keys UX 2025-01-22 09:32:26 +01:00
SPRINX0\prochazka 2e030f87a5 redis loading UX 2025-01-22 09:03:09 +01:00
SPRINX0\prochazka 4793bad92f redis load keys optimalization 2025-01-22 08:49:58 +01:00
SPRINX0\prochazka 0c35aefbe2 Redis Format Json #582 2025-01-21 18:36:25 +01:00
SPRINX0\prochazka 7a2390c025 fix 2025-01-21 16:57:44 +01:00
SPRINX0\prochazka bf3dd2ae88 set redis client name #1004 2025-01-21 16:45:47 +01:00
SPRINX0\prochazka e5b0cb724b UX fix 2025-01-21 15:58:45 +01:00
SPRINX0\prochazka f7b520eb30 readme 2025-01-21 12:47:10 +01:00
SPRINX0\prochazka 4ad0782e59 aws build renamed 2025-01-20 15:20:08 +01:00
Jan Prochazka 0755f171ad changelog 2025-01-10 11:48:24 +01:00
Jan Prochazka 48796ec970 v6.1.3 2025-01-10 11:38:42 +01:00
Jan Prochazka e8d32835d8 v6.1.3-premium-beta.4 2025-01-10 11:11:06 +01:00
SPRINX0\prochazka 56b6864b2c Merge branch 'feature/open-raw' 2025-01-09 17:08:45 +01:00
SPRINX0\prochazka 06be55514c raw data test 2025-01-09 17:07:30 +01:00
SPRINX0\prochazka 183438d2b5 raw data display #991 #962 2025-01-09 16:49:26 +01:00
SPRINX0\prochazka 5208a912a2 raw mode 2025-01-09 16:27:42 +01:00
SPRINX0\prochazka 9f0d8e91ba fixed oracle ILIKE #992 2025-01-09 16:07:14 +01:00
SPRINX0\prochazka 5dbbfe4612 v6.1.3-beta.2 2025-01-09 16:02:59 +01:00
SPRINX0\prochazka f0eb8945e0 filter model test 2025-01-09 16:01:34 +01:00
SPRINX0\prochazka d14a1449a3 fixed show detail in fulltest search 2025-01-09 15:45:03 +01:00
SPRINX0\prochazka b5d0ba1220 data browser tests 2025-01-09 13:51:25 +01:00
SPRINX0\prochazka 436fb24e9f Merge branch 'feature/test-refactor' 2025-01-09 13:35:23 +01:00
SPRINX0\prochazka df64bd1e84 fix 2025-01-09 13:27:53 +01:00
SPRINX0\prochazka 9457df9378 fix 2025-01-09 12:50:02 +01:00
SPRINX0\prochazka f7ed9c3eda e2e test refactor 2025-01-09 12:43:32 +01:00
SPRINX0\prochazka de1a1c923a integr test refactor 2025-01-09 12:30:20 +01:00
SPRINX0\prochazka dec02f2456 fix 2025-01-09 12:07:33 +01:00
SPRINX0\prochazka 98ba5c7d9a workflow fix 2025-01-09 11:06:14 +01:00
SPRINX0\prochazka defc92ee23 workflow fix 2025-01-09 11:03:15 +01:00
SPRINX0\prochazka e9c435c892 cypress tests 2025-01-09 11:02:19 +01:00
Jan Prochazka de90a314d6 Merge pull request #996 from dbgate/feature/filter-exts
feat: filter extentions on fe
2025-01-09 10:46:46 +01:00
Jan Prochazka 007eb84d22 Merge pull request #993 from dbgate/feature/drop-triggers-and-events
Feature/drop triggers and events
2025-01-09 10:46:17 +01:00
Nybkox c640fd6df8 Merge pull request #997 from dbgate/feature/nvmrc
feat: add .nvmrc
2025-01-09 09:52:23 +01:00
Nybkox 1b41b44a15 feat: add .nvmrc 2025-01-09 09:51:56 +01:00
Nybkox 9316e68302 feat: filter extentions on fe 2025-01-09 09:36:21 +01:00
SPRINX0\prochazka 89fce420fa try to fix build 2025-01-09 08:43:30 +01:00
SPRINX0\prochazka a47b060478 fix build 2025-01-09 08:31:07 +01:00
SPRINX0\prochazka 811935f1cd run tests without container 2025-01-09 08:27:24 +01:00
SPRINX0\prochazka 6712c8136f fix 2025-01-08 17:06:53 +01:00
SPRINX0\prochazka 2501cb170f try to use runner local ports for CI tests 2025-01-08 17:01:56 +01:00
SPRINX0\prochazka 3179f2d72c fixed test 2025-01-08 16:48:16 +01:00
SPRINX0\prochazka 9692c0c683 try to fix DEX OAUTH 2025-01-08 16:35:35 +01:00
SPRINX0\prochazka 2deff70218 add connection test 2025-01-08 16:35:16 +01:00
SPRINX0\prochazka 5aee12f543 fixed oauth test redirect 2025-01-08 16:15:49 +01:00
SPRINX0\prochazka 8a4ec82c4c database login - ask user - test connection 2025-01-08 16:14:51 +01:00
SPRINX0\prochazka 11201326fd try to fix dex dockerfile 2025-01-08 15:49:02 +01:00
SPRINX0\prochazka 328c772d35 kill-port didn't help 2025-01-08 15:38:32 +01:00
SPRINX0\prochazka 3f9fd6596d kill port in CY tests 2025-01-08 15:23:18 +01:00
SPRINX0\prochazka 0253b2795e dex config 2025-01-08 15:06:43 +01:00
Jan Prochazka b25376a790 dex config 2025-01-08 15:05:57 +01:00
SPRINX0\prochazka 01f3f44369 oauth test WIP 2025-01-08 15:05:14 +01:00
Jan Prochazka a3e8d64d4e dex config 2025-01-08 14:18:46 +01:00
SPRINX0\prochazka 2ee1250ccc dex config 2025-01-08 13:58:14 +01:00
SPRINX0\prochazka 86b1c82384 Merge branch 'feature/dbf' 2025-01-08 13:08:08 +01:00
SPRINX0\prochazka a156ec942b DBF reader - log errors 2025-01-07 18:28:19 +01:00
SPRINX0\prochazka 48eb8badec fixed import preview 2025-01-07 17:52:26 +01:00
SPRINX0\prochazka 2521f05526 DBF reader plugin 2025-01-07 17:24:56 +01:00
Nybkox 618db79f6b feat: add sql generator to triggers and evets context menu 2025-01-07 16:47:16 +01:00
Nybkox 3089ce8ad6 feat: add triggers and scheduler events to sql generator 2025-01-07 16:35:01 +01:00
Nybkox dd6021e96a feat: add drop option to triggers and events context menu 2025-01-07 14:57:33 +01:00
Jan Prochazka 79bf9016a3 Merge pull request #985 from dbgate/feature/mysql-event-scheduler
Feature/mysql event scheduler
2025-01-07 14:37:30 +01:00
Nybkox 202716e28c fix: show funcitons specific menu for functions 2025-01-07 14:35:40 +01:00
Nybkox 8c5e23f773 feat: show only 1 of disable/enable actions in events context menu 2025-01-07 14:29:17 +01:00
SPRINX0\prochazka bf9374bf6e fixed test config 2025-01-07 13:59:42 +01:00
SPRINX0\prochazka 2087574363 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-01-07 13:39:24 +01:00
SPRINX0\prochazka 4765cbcfd4 Merge branch 'feature/portal-test' 2025-01-07 13:39:18 +01:00
SPRINX0\prochazka a48c23d169 ask user test 2025-01-07 13:38:47 +01:00
Jan Prochazka 03982d4ad2 Merge pull request #981 from dbgate/feature/triggers-sqlite
Feature/triggers sqlite
2025-01-07 13:23:36 +01:00
SPRINX0\prochazka e531a35f37 ask user portal conn 2025-01-07 13:19:44 +01:00
Nybkox a8a5864ff0 fix: escape mysql event name in createSql 2025-01-07 13:18:23 +01:00
SPRINX0\prochazka ee9ce66293 fix test env 2025-01-07 10:55:03 +01:00
SPRINX0\prochazka a11b87a923 test fix 2025-01-07 10:45:56 +01:00
SPRINX0\prochazka e3cd01aa2e portal test - import Chinook DB 2025-01-07 10:30:26 +01:00
SPRINX0\prochazka bf92943a6a portal tests WIP 2025-01-07 09:32:18 +01:00
SPRINX0\prochazka 8d2c2cd62d focus query editor 2025-01-07 09:32:01 +01:00
Nybkox 029f24b079 feat: update dbgate-query-splitter tp 4.11.3 2025-01-07 09:20:59 +01:00
SPRINX0\prochazka d9ca29b602 portal connection test 2025-01-06 14:56:16 +01:00
SPRINX0\prochazka ddcfc127b7 Merge branch 'master' of https://github.com/dbgate/dbgate 2025-01-06 11:58:29 +01:00
SPRINX0\prochazka 0659691a72 Merge branch 'feature/ssh-tunnel-test' 2025-01-06 11:57:59 +01:00
SPRINX0\prochazka 4e7c8d8b1e added missing services 2025-01-06 10:42:51 +01:00
SPRINX0\prochazka f477c03281 increase test timeout 2025-01-06 10:18:40 +01:00
SPRINX0\prochazka 362d4a5a0d test connect too SSH via keyfile 2025-01-06 10:16:58 +01:00
SPRINX0\prochazka 42ad78df58 keyfile - build containers 2025-01-06 09:46:57 +01:00
SPRINX0\prochazka fef3ffd996 workflow fix 2025-01-06 09:29:27 +01:00
SPRINX0\prochazka a5f824c778 changed location of mysql-ssh container 2025-01-06 09:00:56 +01:00
SPRINX0\prochazka 4f5bb563e8 JEST timeout 2025-01-06 08:35:15 +01:00
SPRINX0\prochazka 053ba471a6 SSH - handle SSH error 2025-01-06 08:24:14 +01:00
Jan Prochazka 066cd407a9 Merge pull request #986 from dbgate/feature/missing-factories
feat: add missing triggers and events factories
2025-01-05 08:05:02 +01:00
Jan Prochazka b418dd8d12 Merge pull request #984 from freitasm/master
Update runners.js to fix small typo
2025-01-05 08:02:47 +01:00
Nybkox 1be73d8a4c fix: build enable/disable sql on frontend 2025-01-03 22:57:33 +01:00
SPRINX0\prochazka aff282d31e ssh tunnel WIP 2025-01-03 16:44:57 +01:00
Nybkox 576a4fc2e5 feat: add missing triggers and events factories 2025-01-03 16:26:10 +01:00
Nybkox e73356c8da feat: add schedulerEvents to tools 2025-01-03 15:02:03 +01:00
Nybkox 0ffe2d8811 fix: disable rename tests for mysql 2025-01-03 14:59:57 +01:00
Nybkox c90011fc27 feat: scheduler events tests 2025-01-03 14:59:57 +01:00
Nybkox 891fb15290 feat: add scheduler events to ui 2025-01-03 14:59:57 +01:00
Nybkox 903297a1e9 feat: add scheduler events to analyser 2025-01-03 14:59:57 +01:00
SPRINX0\prochazka 59788faefd workflows 2025-01-03 08:14:49 +01:00
SPRINX0\prochazka f5a6ca18f0 run test containers - standalone workflow 2025-01-03 08:12:11 +01:00
Mauricio Freitas 30690304bb Update runners.js
Fixed typo "no data retured"
2025-01-03 10:01:29 +13:00
SPRINX0\prochazka 144777da58 SSH - force IPv4 (use 127.0.0.1 instead of localhost) 2025-01-02 17:03:49 +01:00
SPRINX0\prochazka 28a206c7ed upgrade ssh2 2025-01-02 17:03:20 +01:00
SPRINX0\prochazka 72d29a293c skip changed detection 2025-01-02 15:58:15 +01:00
SPRINX0\prochazka 561b43fa13 fix 2025-01-02 15:57:12 +01:00
SPRINX0\prochazka 1e9dc89da1 fixed detection changed files 2025-01-02 15:56:26 +01:00
SPRINX0\prochazka b4d1b9aa05 fix 2025-01-02 15:35:57 +01:00
SPRINX0\prochazka 77be448b41 fix 2025-01-02 14:13:24 +01:00
SPRINX0\prochazka 1ff2749c9b mysql ssh image 2025-01-02 14:11:07 +01:00
SPRINX0\prochazka e5fb21daf6 workflows 2025-01-02 14:02:38 +01:00
SPRINX0\prochazka c1ceea084b ssh connection test 2025-01-02 14:00:18 +01:00
Nybkox 9f4b55ce07 feat: sqlite triggers tests 2025-01-02 11:47:07 +01:00
Nybkox 01b7c42851 fix: prevent testing empty parameters 2025-01-02 11:41:00 +01:00
Nybkox f0221f6e43 feat: sqlite triggers 2025-01-02 11:26:40 +01:00
Nybkox 30bbdb0f1d refactor: move sqlite queries to sql directory 2025-01-02 11:26:40 +01:00
Nybkox a6f0bc78d4 fix: always show pin icon on the right 2025-01-02 10:59:22 +01:00
Jan Prochazka ceb6a88964 Merge branch 'feature/workflow-refactor' 2024-12-30 15:25:39 +01:00
Jan Prochazka a39fff8b3a ssh tunnel test disabled 2024-12-30 15:25:23 +01:00
Jan Prochazka 0cf3d5993c generated header 2024-12-30 08:28:25 +01:00
Jan Prochazka 2966484cda v6.1.3-beta.1 2024-12-30 08:23:36 +01:00
Jan Prochazka ac3bb58106 generated workflows 2024-12-30 08:23:18 +01:00
Jan Prochazka 36e2f1bdee workflow templates 2024-12-30 08:11:18 +01:00
Jan Prochazka 70083bd870 workflows - defs support 2024-12-30 07:05:25 +01:00
Jan Prochazka f7b39fca26 code cleanup 2024-12-29 09:57:33 +01:00
Jan Prochazka 70873e83bd docker pipeline refactor 2024-12-29 09:57:18 +01:00
Jan Prochazka 2858bba8b2 yaml replace changed 2024-12-28 21:16:52 +01:00
Jan Prochazka bd0404fbaf fixes 2024-12-28 15:36:05 +01:00
Jan Prochazka 317f6256f6 fix 2024-12-28 15:28:34 +01:00
Jan Prochazka 6c9b738717 fix 2024-12-28 15:10:45 +01:00
Jan Prochazka 2f8c584af5 workflows 2024-12-28 15:03:38 +01:00
Jan Prochazka d3b417679e workflow processor 2024-12-28 15:00:59 +01:00
Jan Prochazka 00dd8bfc72 fixed links to dbgate.org 2024-12-28 14:01:19 +01:00
Jan Prochazka e1eea4adf3 fixed links to dbgate.org 2024-12-28 11:30:18 +01:00
Jan Prochazka fd2d2e90d4 workflow refactor WIP 2024-12-27 08:34:17 +01:00
Jan Prochazka f97b70ce45 v6.1.2 2024-12-26 08:05:17 +01:00
Jan Prochazka 45d79478fb workflow fixes 2024-12-26 08:05:03 +01:00
Jan Prochazka a59f42bd62 v6.1.2-premium-beta.18 2024-12-26 07:47:14 +01:00
Jan Prochazka a189fa7b6d fix 2024-12-26 07:46:58 +01:00
Jan Prochazka 794bc97207 v6.1.2-beta.17 2024-12-26 07:45:27 +01:00
Jan Prochazka 24f7def7ab v6.1.2-premium-beta.16 2024-12-26 07:45:16 +01:00
Jan Prochazka 01071c236e notarization log 2024-12-26 07:44:53 +01:00
Jan Prochazka a6326ac9fa v6.1.2-premium-beta.15 2024-12-26 07:37:36 +01:00
Jan Prochazka 4c6d409be8 print notarization log 2024-12-26 07:37:19 +01:00
Jan Prochazka 44ad8e51a5 v6.1.2-premium-beta.14 2024-12-26 07:18:26 +01:00
Jan Prochazka e82578adfb v6.1.2-beta.14 2024-12-26 07:17:52 +01:00
Jan Prochazka 24f28b559e pro app build 2024-12-26 07:17:24 +01:00
Jan Prochazka b086a5d3d2 prevent double upload snap 2024-12-25 21:32:17 +01:00
Jan Prochazka bb0b87b770 v6.1.2-beta.13 2024-12-25 20:20:26 +01:00
Jan Prochazka aa4f82fa98 fix 2024-12-25 20:20:10 +01:00
Jan Prochazka 873ace4170 v6.1.2-beta.12 2024-12-25 19:51:24 +01:00
Jan Prochazka 5a9d8ba0a7 fix 2024-12-25 19:51:16 +01:00
Jan Prochazka 07f0fdcc1c v6.1.2-beta.11 2024-12-25 19:43:27 +01:00
Jan Prochazka ff7ee4fb98 fix 2024-12-25 19:43:16 +01:00
Jan Prochazka b1f5b62757 v6.1.2-beta.10 2024-12-25 19:39:37 +01:00
Jan Prochazka a67c857204 python 3.11 fix 2024-12-25 19:39:26 +01:00
Jan Prochazka 4032c53a30 v6.1.2-beta.9 2024-12-25 12:19:09 +01:00
Jan Prochazka 0a37ed74d9 electron reverted to version 30 2024-12-25 12:18:58 +01:00
Jan Prochazka f07efe440a v6.1.2-beta.8 2024-12-25 12:09:35 +01:00
Jan Prochazka 2d5e67802d removed mongodb-client-encryption from community build 2024-12-25 12:09:25 +01:00
Jan Prochazka 7b8e013084 v6.1.2-beta.7 2024-12-25 11:29:42 +01:00
Jan Prochazka b69fc04b5c try to upgrade electron 2024-12-25 11:29:23 +01:00
Jan Prochazka b6dfdd4741 v6.1.2-beta.6 2024-12-25 11:14:10 +01:00
Jan Prochazka ff3985a542 upgraded mongodb-client-encryption 2024-12-25 11:13:54 +01:00
Jan Prochazka 9c7e1dcaf1 v6.1.2-beta.5 2024-12-25 10:44:39 +01:00
Jan Prochazka 48eb09687c app build - node version 22 2024-12-25 10:44:02 +01:00
Jan Prochazka 86b339535d updated electron builder 2024-12-25 10:42:49 +01:00
Jan Prochazka 576b6dc774 v6.1.2-beta.4 2024-12-25 10:28:26 +01:00
Jan Prochazka 18ca971f67 try to use electron notarize 2024-12-25 10:28:10 +01:00
Jan Prochazka 3916a5e6e8 fixed ssh tunnel connection test #972 #973 2024-12-25 09:49:23 +01:00
Jan Prochazka 1446fdad5e v6.1.2-beta.3 2024-12-23 09:52:31 +01:00
Jan Prochazka 1478886e04 fix 2024-12-23 09:52:22 +01:00
Jan Prochazka 54d61790a9 v6.1.2-beta.2 2024-12-23 09:27:28 +01:00
Jan Prochazka bb638fd8db fix 2024-12-23 09:27:14 +01:00
Jan Prochazka e3a2589517 v6.1.2-beta.1 2024-12-23 09:21:42 +01:00
Jan Prochazka 6f557a6463 print notarization error 2024-12-23 09:21:31 +01:00
Jan Prochazka 323f27f6e4 changelog 2024-12-23 07:06:36 +01:00
Jan Prochazka 8d4a38dccb v6.1.1 2024-12-23 07:06:12 +01:00
SPRINX0\prochazka 54a3b30e83 Merge branch 'master' of https://github.com/dbgate/dbgate 2024-12-20 13:45:41 +01:00
SPRINX0\prochazka 6251bcd8fd changelog 2024-12-20 13:45:39 +01:00
SPRINX0\prochazka e42099c1a9 v6.1.1-beta.1 2024-12-20 12:57:25 +01:00
Jan Prochazka b07ee91cf9 fixed oracle export + clickhouse test 2024-12-20 12:23:29 +01:00
Jan Prochazka 62c028fc3c export test finished 2024-12-20 11:33:28 +01:00
SPRINX0\prochazka 07ea575b0f fixed postgres export + export tests #970 2024-12-20 11:17:43 +01:00
SPRINX0\prochazka ee78786974 #968 mysql table comment fix 2024-12-20 10:47:14 +01:00
SPRINX0\prochazka e1814663cd trigger fulltext search 2024-12-20 10:40:57 +01:00
SPRINX0\prochazka 6ae3e019ff ux 2024-12-20 10:38:29 +01:00
Jan Prochazka cadf539c3d fixed diff for triggers 2024-12-20 10:30:05 +01:00
Jan Prochazka 51929d7ef7 some tests fixed 2024-12-20 10:23:49 +01:00
Jan Prochazka 0edc7f077f test trigger createSql 2024-12-20 09:26:53 +01:00
SPRINX0\prochazka 2488cee7ea test definition refactor 2024-12-20 09:03:30 +01:00
SPRINX0\prochazka edf64db69a search settings improvement 2024-12-20 08:42:30 +01:00
SPRINX0\prochazka c65bf51dcd Merge branch 'feature/parameters-oracle' 2024-12-20 07:46:51 +01:00
Nybkox effe235a95 feat: oracle parameters 2024-12-19 16:06:56 +01:00
Nybkox 583d1494c2 feat: fallback to position if param does not have name 2024-12-19 12:50:50 +01:00
Nybkox 983daf0d1c feat: add options position to params typing 2024-12-19 12:09:25 +01:00
Jan Prochazka 756ddf1a8b Merge pull request #969 from dbgate/feature/triggers
Feature/triggers
2024-12-19 12:09:08 +01:00
Nybkox 9ccd647d97 fix: update triggers typing to cover all oracle timing options 2024-12-19 11:55:22 +01:00
Nybkox dc9bfdc553 fix: update pssql triggers query to match ts def 2024-12-19 10:50:39 +01:00
Nybkox af4e91faba fix: update oracle triggers test create queries 2024-12-19 10:46:40 +01:00
Nybkox 394020157b fix: update oracle triggers tests expected values 2024-12-19 10:26:48 +01:00
Nybkox f16aab12e1 fix: add trigger event type to oracle triggers query 2024-12-19 10:17:16 +01:00
Nybkox e08216d6dd feat: mssql triggers tests 2024-12-19 10:13:15 +01:00
Nybkox ebb4f8e73e fix: mssql triggers query naming 2024-12-19 10:13:04 +01:00
Nybkox b9939e5d5f fix: correctly map mysql triggers sql output 2024-12-19 09:58:54 +01:00
Nybkox 9eb3bca8d6 feat: add other create/drop for triggers tests 2024-12-19 09:54:17 +01:00
Nybkox 022f263bf9 fix: update pssql triggers test sql 2024-12-19 09:53:47 +01:00
Nybkox 56972652d5 fix: pssql triggers - map tgtype to timing / event type correctly 2024-12-19 09:53:11 +01:00
SPRINX0\prochazka d75b9e2688 ace-builds patch #954 2024-12-19 09:21:57 +01:00
Nybkox d2c5440e39 feat: pssql tirgger test 2024-12-19 08:33:26 +01:00
Jan Prochazka 8ff30e426e fix - expand limited when accessing bykeyboard nav 2024-12-18 14:13:01 +01:00
Jan Prochazka 7cdbef609e arm-64 builds 2024-12-18 10:59:21 +01:00
Jan Prochazka f6195a468d v6.1.0 2024-12-18 10:37:54 +01:00
Jan Prochazka c23bf72d55 changelog 2024-12-18 10:35:54 +01:00
Jan Prochazka c02441402b fixed search in list 2024-12-18 10:22:02 +01:00
Jan Prochazka b9a8764b55 fixed search 2024-12-18 10:01:52 +01:00
Jan Prochazka a2374c1981 v6.0.1-beta.6 2024-12-18 09:39:57 +01:00
Jan Prochazka 9cfd5af704 prevent jump to first item when focusing because of mouse 2024-12-18 09:37:40 +01:00
Jan Prochazka a6f473b8ed better connection UX 2024-12-18 09:08:42 +01:00
Jan Prochazka e0a74402cb dropdown for default database 2024-12-18 08:43:51 +01:00
Jan Prochazka c6e57b278e use default database 2024-12-18 08:18:09 +01:00
Jan Prochazka e63f1f8f09 clickAction refactor, settings - open detail after keyboard navigation 2024-12-18 08:08:45 +01:00
Nybkox e866c019f0 feat: mysql and oracle triggers tests 2024-12-18 06:09:30 +01:00
Nybkox 5f4bd6d3e3 fix: triggers typing and yaml conv 2024-12-18 06:05:49 +01:00
SPRINX0\prochazka 57da9c9885 changelog wip 2024-12-17 17:17:31 +01:00
SPRINX0\prochazka e6a3acf4c2 search GUI improved 2024-12-17 16:27:54 +01:00
SPRINX0\prochazka 537869e862 data grid - no rows info 2024-12-17 16:03:21 +01:00
SPRINX0\prochazka ae2ff7b3b1 fixed display CLOB an NCLOB columns in Oracle #944 2024-12-17 15:31:10 +01:00
SPRINX0\prochazka 1db01dbdb1 optimalization 2024-12-17 14:59:44 +01:00
SPRINX0\prochazka 7988438dc7 fix search connections 2024-12-17 14:43:05 +01:00
SPRINX0\prochazka 3b32823f94 v6.0.1-beta.5 2024-12-17 14:29:56 +01:00
SPRINX0\prochazka 3370c754f2 try to fix postgres plugin 2024-12-17 14:29:45 +01:00
SPRINX0\prochazka 2d84e5a611 dataGrid align numbers right #957 2024-12-17 13:43:21 +01:00
SPRINX0\prochazka 8d5f73849e upgraded ace-builds #954 2024-12-17 12:42:09 +01:00
SPRINX0\prochazka 7a5019164a configurable search in connections 2024-12-17 12:26:50 +01:00
SPRINX0\prochazka f5733ea2d7 handle camelCase in tokenizer 2024-12-17 10:16:19 +01:00
Nybkox 413287c691 fix: remove triggerName 2024-12-17 10:16:07 +01:00
Nybkox 9e941dfce2 feat: add triggers to ui 2024-12-17 10:16:07 +01:00
Nybkox d32af771dc fix: add purename to trigger analysers 2024-12-17 10:16:07 +01:00
Nybkox 1c84f40bcf feat: add triggers loading message 2024-12-17 10:16:06 +01:00
Nybkox 671eba22e0 feat: add oracle triggers to analyser 2024-12-17 10:16:06 +01:00
Nybkox c00cb3076c feat: add mysql triggers to analyser 2024-12-17 10:16:06 +01:00
Nybkox 62daa13e54 feat: add mssql triggers to analyser 2024-12-17 10:16:06 +01:00
Nybkox 4cc0a66a7d feat: add pssql triggers to analyser 2024-12-17 10:16:06 +01:00
SPRINX0\prochazka 92e13220d8 tokenized search in references 2024-12-17 10:12:45 +01:00
SPRINX0\prochazka 2a5fdd852a search tokenizer optimalization 2024-12-17 10:09:52 +01:00
SPRINX0\prochazka 7759fd862f ability to disable tab preview mode 2024-12-17 09:34:16 +01:00
SPRINX0\prochazka ca5dd0ac30 v6.0.1-beta.4 2024-12-16 17:01:39 +01:00
SPRINX0\prochazka 18be29fd88 Merge branch 'feature/search' 2024-12-16 17:01:26 +01:00
SPRINX0\prochazka 6ea54a5b0a tokenized column search 2024-12-16 17:01:05 +01:00
SPRINX0\prochazka 5d294f6236 camel search tokenizer 2024-12-16 16:58:10 +01:00
SPRINX0\prochazka 5544b6291b search tokenizer 2024-12-16 16:50:17 +01:00
SPRINX0\prochazka bf4841bca4 filter name optimalization 2024-12-16 16:23:55 +01:00
SPRINX0\prochazka 358a641449 refactor - not working 2024-12-16 15:53:52 +01:00
SPRINX0\prochazka 7e1ceb69ae UX fix 2024-12-16 15:36:26 +01:00
SPRINX0\prochazka 939f04ae62 optimalization 2024-12-16 15:19:54 +01:00
SPRINX0\prochazka 2fc2ac491c find in SQL text 2024-12-16 14:45:38 +01:00
SPRINX0\prochazka 20a5a50516 rename file 2024-12-16 14:10:18 +01:00
SPRINX0\prochazka 0932f4c537 search columns WIP 2024-12-16 14:08:19 +01:00
SPRINX0\prochazka c46c9a4e16 lisgt matcher refactor 2024-12-16 13:08:59 +01:00
SPRINX0\prochazka a20b4b3339 search settings 2024-12-16 11:47:53 +01:00
SPRINX0\prochazka dc302f89c7 Display comments into TABLES and COLUMNS lists #755 2024-12-16 09:46:07 +01:00
SPRINX0\prochazka f5a2d142e2 fixed [MSSQL] Foreign keys show up in a weird way #734 2024-12-16 08:26:25 +01:00
SPRINX0\prochazka 1020a5820b Merge branch 'master' of https://github.com/dbgate/dbgate 2024-12-13 16:27:17 +01:00
SPRINX0\prochazka deb13505b8 fixed loading constraints #734 2024-12-13 16:27:14 +01:00
Jan Prochazka 71c06e31f7 sql terminator in oracle routines 2024-12-13 15:06:12 +01:00
Jan Prochazka a203480a72 oracle function tests 2024-12-13 15:06:12 +01:00
Jan Prochazka c0fcd681be oracle procedure & function analyser 2024-12-13 15:06:12 +01:00
Jan Prochazka 7402bb6823 test fix 2024-12-13 15:06:11 +01:00
Jan Prochazka 35d791bee4 fixed some tests 2024-12-13 15:06:11 +01:00
Jan Prochazka ad4a599800 oracle view fix 2024-12-13 15:06:11 +01:00
Jan Prochazka 33db85f03b oracle tests 2024-12-13 15:06:11 +01:00
Jan Prochazka ec5d05fc26 oracle fixes 2024-12-13 15:06:11 +01:00
Jan Prochazka face7ecdb5 rename sql object oracle 2024-12-13 15:06:11 +01:00
Jan Prochazka 6035319035 uncommented oracle container for tests 2024-12-13 15:06:11 +01:00
Jan Prochazka e698da71fb oracle tests - run on CI 2024-12-13 15:06:11 +01:00
Jan Prochazka b466de781a oracle - rename table, deploy scripts passes 2024-12-13 15:06:11 +01:00
Jan Prochazka e5d583310d merged tests pipelines 2024-12-13 15:06:11 +01:00
Jan Prochazka f72dbf19c2 driver tests 2024-12-13 15:06:11 +01:00
Jan Prochazka 10538a04b4 oracle import pass 2024-12-13 15:06:11 +01:00
Jan Prochazka d71452a397 oracle - implemented scope identity 2024-12-13 15:06:11 +01:00
Jan Prochazka 3f45bfcdd0 select scope identity test 2024-12-13 15:06:11 +01:00
Jan Prochazka 545e9863b6 fix identity test 2024-12-13 15:06:11 +01:00
Jan Prochazka a37f2a5240 select scope identity test 2024-12-13 15:06:11 +01:00
Jan Prochazka d6b4c0a96b oracle alter table passes 2024-12-13 15:06:11 +01:00
Jan Prochazka d56e917b3f oracle query spec passed 2024-12-13 15:06:11 +01:00
Jan Prochazka 860c811504 oracle table-create test passes 2024-12-13 15:06:11 +01:00
Jan Prochazka c93e8c35ec table-analyse oracle tests pass 2024-12-13 15:06:11 +01:00
Jan Prochazka 5278e5da0c fixed oracle index analyser 2024-12-13 15:06:11 +01:00
Jan Prochazka e7e3c307fc table analyse refactor (works on oracle) 2024-12-13 15:06:11 +01:00
Jan Prochazka e9af85038e try to use smaller oracle image 2024-12-13 15:06:11 +01:00
Jan Prochazka bf04721e36 run oracle tests on CI 2024-12-13 15:06:11 +01:00
SPRINX0\prochazka a810dc4204 focused connection changes 2024-12-13 10:48:42 +01:00
Jan Prochazka faad82fc34 Merge pull request #961 from dbgate/feature/postgis-geo
feat: transform geography binary data to wkt
2024-12-12 16:47:29 +01:00
Nybkox b8ae53db7d feat: transform geography binary data to wkt 2024-12-12 16:37:54 +01:00
Jan Prochazka 1571295ab6 focus UX 2024-12-12 16:29:12 +01:00
Jan Prochazka d3cc3a92c1 v6.0.1-beta.3 2024-12-12 16:15:18 +01:00
Jan Prochazka 381dc6a535 Add apple silicon only build #949 2024-12-12 16:15:03 +01:00
Jan Prochazka 6b9df571af handler UX scroll problem 2024-12-12 16:06:36 +01:00
Jan Prochazka 897547371e configurable connection click, database click #959 2024-12-12 15:53:00 +01:00
Jan Prochazka bf85a922ca first oracle test works 2024-12-10 16:03:26 +01:00
Jan Prochazka 00525f6b81 oracle tests WIP 2024-12-10 15:40:15 +01:00
SPRINX0\prochazka 6dd27eb34f basic auth check config #934 2024-12-10 13:11:03 +01:00
SPRINX0\prochazka 0b30386fee e2e test config 2024-12-10 08:48:53 +01:00
SPRINX0\prochazka 1f7f0ea8a2 Merge branch 'feature/e2e-tests' 2024-12-10 08:33:52 +01:00
SPRINX0\prochazka 0ae0cee766 renamed test job 2024-12-10 08:33:28 +01:00
SPRINX0\prochazka 4cbc7f3ae5 connect test 2024-12-09 17:22:29 +01:00
SPRINX0\prochazka f1cd0ab689 fix tests 2024-12-09 17:13:32 +01:00
SPRINX0\prochazka 7f367a1f84 test fixes 2024-12-09 16:52:02 +01:00
SPRINX0\prochazka 5405b9bf72 cypress run server inline test 2024-12-09 16:32:56 +01:00
SPRINX0\prochazka 75f75d95a6 ux tests 2024-12-09 15:41:50 +01:00
SPRINX0\prochazka ae5c539e31 UI tests 2024-12-09 15:33:45 +01:00
SPRINX0\prochazka e7797cedc1 try to fix test 2024-12-09 15:11:38 +01:00
SPRINX0\prochazka f3c3ddd73a e2e on CI 2024-12-09 14:51:56 +01:00
SPRINX0\prochazka c201f06103 fixed workflow 2024-12-09 13:45:40 +01:00
SPRINX0\prochazka 111a3a678f cypress test WIP 2024-12-09 13:44:08 +01:00
SPRINX0\prochazka 51c4964003 fixed deps 2024-12-06 16:48:15 +01:00
SPRINX0\prochazka 5fac064a48 update deps 2024-12-06 16:41:22 +01:00
SPRINX0\prochazka e84f45ae39 fix 2024-12-06 16:39:56 +01:00
SPRINX0\prochazka 7e119d40a4 e2e tests 2024-12-06 16:38:42 +01:00
SPRINX0\prochazka 22b47d1066 e2e test in github 2024-12-06 16:12:51 +01:00
SPRINX0\prochazka ac0ea6a937 cy - connect to mysql 2024-12-06 15:46:23 +01:00
SPRINX0\prochazka ed7bfe0c21 e2e tests branch 2024-12-06 14:36:59 +01:00
SPRINX0\prochazka 55cac14ecf v6.0.1-packer-beta.2 2024-12-06 14:14:39 +01:00
SPRINX0\prochazka 691635c5d1 changed volatile deps 2024-12-06 14:14:27 +01:00
SPRINX0\prochazka 9209a2d7d3 v6.0.1-packer-beta.1 2024-12-06 13:16:08 +01:00
Jan Prochazka 05b044d965 Merge pull request #953 from dbgate/featrue/callable-templates
feat: myssql callable template
2024-12-05 15:40:43 +01:00
Nybkox e231a3a41a feat: pssql callable template 2024-12-05 15:32:33 +01:00
Nybkox 216614a4b1 feat: allow dollar dollar string in query params 2024-12-05 15:32:23 +01:00
Nybkox ae19d14951 feat: add return type to pssql funcs 2024-12-05 15:31:50 +01:00
Nybkox 7f639361b8 feat: myssql callable template 2024-12-05 12:45:49 +01:00
SPRINX0\prochazka ba706b85d3 changelog 2024-12-05 12:25:13 +01:00
SPRINX0\prochazka 3b91d921e8 v6.0.0 2024-12-05 12:11:30 +01:00
SPRINX0\prochazka 660555d664 v6.0.0-premium-beta.6 2024-12-05 10:20:52 +01:00
SPRINX0\prochazka 3550710f23 fix 2024-12-05 10:20:18 +01:00
SPRINX0\prochazka 1429c29537 v6.0.0-premium-beta.5 2024-12-05 10:16:26 +01:00
SPRINX0\prochazka 95113490f1 disabled aws build 2024-12-05 10:16:11 +01:00
SPRINX0\prochazka 1eafdb944a fix redirect 2024-12-05 10:15:32 +01:00
SPRINX0\prochazka a32cd0b2ae typo 2024-12-05 09:56:24 +01:00
SPRINX0\prochazka 249fbf3f96 v6.0.0-beta.4 2024-12-04 14:39:43 +01:00
SPRINX0\prochazka 64877af64a changed build envfrom macos12 to macos14 2024-12-04 14:39:32 +01:00
SPRINX0\prochazka ff94e46179 v6.0.0-beta.3 2024-12-04 14:19:13 +01:00
SPRINX0\prochazka 921bd4613a fix 2024-12-04 14:17:42 +01:00
SPRINX0\prochazka 6f4a49ea97 refactor 2024-12-04 14:15:13 +01:00
SPRINX0\prochazka 9029fccad4 default parameter encoding for execute scripts 2024-12-04 13:45:12 +01:00
SPRINX0\prochazka edf3a072c5 tsql call 2024-12-04 13:27:20 +01:00
SPRINX0\prochazka 0fde8c49a7 generate SQL - execute procedure TSQL 2024-12-04 13:15:06 +01:00
SPRINX0\prochazka 767c835a8e parameters in db struct extender 2024-12-04 12:40:12 +01:00
SPRINX0\prochazka 38f0223dc0 UX 2024-12-04 10:51:26 +01:00
SPRINX0\prochazka ec707b5af3 up-to-date sql object info tab 2024-12-04 10:44:43 +01:00
SPRINX0\prochazka 462d5e3187 removed schemaName from mysql 2024-12-04 10:23:16 +01:00
SPRINX0\prochazka 5cc4c07941 fix - mysql has not schema 2024-12-04 10:16:58 +01:00
SPRINX0\prochazka 20de78f88a table editor - mark tab unsaved 2024-12-04 10:00:03 +01:00
SPRINX0\prochazka a63d70ca7e handled "driver not found" error 2024-12-04 09:52:06 +01:00
SPRINX0\prochazka 672d6b88b2 Merge branch 'master' of https://github.com/dbgate/dbgate 2024-12-04 07:46:06 +01:00
SPRINX0\prochazka add1612c92 6.0 changelog 2024-12-04 07:46:04 +01:00
Jan Prochazka 96b964e609 Merge pull request #952 from dbgate/feature/mariadb-indexes-collation
feat: add collation to maria db indexes query and analyser
2024-12-04 07:07:56 +01:00
Nybkox 6b40190097 feat: add collation to maria db indexes query and analyser 2024-12-03 19:28:16 +01:00
SPRINX0\prochazka f5b0bc5605 v6.0.0-premium-beta.2 2024-12-03 18:00:43 +01:00
SPRINX0\prochazka 64a58252e5 reverted tmp change 2024-12-03 17:56:51 +01:00
SPRINX0\prochazka 46571684f6 v6.0.0-alpha.1 2024-12-03 17:52:09 +01:00
SPRINX0\prochazka 710022539b tmp change 2024-12-03 17:51:36 +01:00
SPRINX0\prochazka bc75d559b0 fix 2024-12-03 17:50:53 +01:00
SPRINX0\prochazka a82ee5cc65 v6.0.0-alpha.1 2024-12-03 17:41:51 +01:00
SPRINX0\prochazka 6647dd16f8 tmp version change 2024-12-03 17:41:12 +01:00
SPRINX0\prochazka 6f4e1e07f7 fix - build pro NPM 2024-12-03 17:39:50 +01:00
SPRINX0\prochazka 5cd951a9c1 v6.0.0-alpha.1 2024-12-03 17:25:52 +01:00
SPRINX0\prochazka f492a215b4 changed NPM versions to 6.0 2024-12-03 17:22:37 +01:00
SPRINX0\prochazka bbd2d74a28 v5.5.7-beta.69 2024-12-03 17:00:57 +01:00
SPRINX0\prochazka 2b697e21ba Merge branch 'master' of https://github.com/dbgate/dbgate 2024-12-03 17:00:46 +01:00
SPRINX0\prochazka 3a4e4ecbdc fix 2024-12-03 17:00:44 +01:00
SPRINX0\prochazka 05cbb915d6 v5.5.7-alpha.68 2024-12-03 16:38:01 +01:00
SPRINX0\prochazka 26a2bb75fa v5.5.7-beta.67 2024-12-03 16:35:18 +01:00
Jan Prochazka 71b0bb78ec Merge pull request #947 from dbgate/feature/parameters
Feature/parameters
2024-12-03 16:27:28 +01:00
Nybkox 4e4eb39a19 fix: remove distinct from mysql params query 2024-12-03 16:19:57 +01:00
Jan Prochazka b6399c8271 try to fix test 2024-12-03 16:05:23 +01:00
SPRINX0\prochazka eb4a764407 correctly show focus in form view 2024-12-03 15:41:46 +01:00
Nybkox 27188eb2c5 fix: normalize type name for mysql params 2024-12-03 15:39:22 +01:00
Nybkox 57a997adc3 fix: expect decimal for numeric params in mysql tests 2024-12-03 15:39:05 +01:00
Nybkox a72a03cc3a fix: add null safety for mysql function w/o params 2024-12-03 15:33:11 +01:00
Nybkox bb185d9e9f fix: add join on schema for mysql params query 2024-12-03 15:32:33 +01:00
Nybkox 0298660714 fix: add shchema to mysql programables query 2024-12-03 15:32:21 +01:00
SPRINX0\prochazka 8bf1dbb10d recent & unsaved connection folder 2024-12-03 15:30:02 +01:00
SPRINX0\prochazka 8e5ef98a7c unsaved connections limit 2024-12-03 15:20:28 +01:00
SPRINX0\prochazka 72bd536aec show unsaved connections in connection tree 2024-12-03 14:54:22 +01:00
Nybkox 1a4009a6b2 chore: remove unused query results 2024-12-03 14:13:31 +01:00
Nybkox e40357c052 fix: replace fullDataType with dataType in mssql params 2024-12-03 14:11:26 +01:00
Nybkox 222ea07cf2 fix: update mssql params queries 2024-12-03 14:11:04 +01:00
SPRINX0\prochazka 6b3f398de3 fixed keyboard navigation 2024-12-03 13:53:06 +01:00
SPRINX0\prochazka d796fa7ff4 connection menu refactor 2024-12-03 13:37:36 +01:00
SPRINX0\prochazka 6fdfd8717f Open form removed from default actions 2024-12-03 13:31:26 +01:00
Nybkox 81cea4c0f2 fix: pssql params to string helper 2024-12-03 13:07:50 +01:00
SPRINX0\prochazka 6a64633650 fixed menu for non-mac 2024-12-03 13:07:02 +01:00
Nybkox 21702f1593 fix: do not fetch pssql params w/o name 2024-12-03 13:03:05 +01:00
Nybkox 32ddb9c4c7 fix: normalize pssql parameters datatype 2024-12-03 13:02:46 +01:00
Nybkox 10fc62ceb7 fix: do not order pssql params by name 2024-12-03 13:02:40 +01:00
Nybkox d3018a3136 fix: correct function name in tests 2024-12-03 13:02:39 +01:00
Jan Prochazka f9bcbd588b mac keyboard menu 2024-12-03 12:52:04 +01:00
Nybkox 5c7d2bfd85 fix: update parameter group keys 2024-12-03 11:01:47 +01:00
SPRINX0\prochazka 788f0ebf77 show error for current connection 2024-12-03 10:53:59 +01:00
Nybkox 0eca5dd95d fix: typos 2024-12-03 10:37:36 +01:00
SPRINX0\prochazka 47322b0bbb expand/collapse tables 2024-12-03 10:23:54 +01:00
SPRINX0\prochazka 518a05a6f0 expand/collapse DB with keyboard 2024-12-03 10:16:51 +01:00
Jan Prochazka 352e426e17 fix 2024-12-03 09:48:56 +01:00
Jan Prochazka 666122f265 add mysql create/drop procedure test 2024-12-03 09:46:12 +01:00
SPRINX0\prochazka 61e32f6d95 query designer moved to premium 2024-12-03 08:39:05 +01:00
SPRINX0\prochazka 7aabc8f0be refresh licenses 2024-12-02 17:36:56 +01:00
Jan Prochazka a66dc03b99 params test - added object for test parent object match 2024-11-29 10:48:15 +01:00
Jan Prochazka cf5ecb3150 test create SQL 2024-11-29 10:44:09 +01:00
Jan Prochazka 46c365c5cd mysql parameter types 2024-11-29 10:29:12 +01:00
Jan Prochazka ea76751e4a postgres function tests 2024-11-29 10:06:34 +01:00
Jan Prochazka 0bef3f8e71 postgre procedure type tests 2024-11-29 09:57:46 +01:00
Jan Prochazka c26c9fae12 mssql parameters test 2024-11-29 09:35:15 +01:00
Jan Prochazka 446c615bb8 typo 2024-11-29 08:47:13 +01:00
Nybkox c516873541 feat: add parameters to mysql 2024-11-28 21:35:26 +01:00
Nybkox d4326de087 fix: proceduresParameters mssql query 2024-11-28 21:07:59 +01:00
Nybkox eca966bb90 fix: add null safety to getParametersSqlString 2024-11-28 21:07:59 +01:00
Nybkox 262b4732e3 feat: use parameterMode instead of isOutputParameter 2024-11-28 21:07:59 +01:00
Nybkox 7f9a30f568 fix: add missing conditions for pssql parameters query 2024-11-28 21:07:59 +01:00
Nybkox a89d2e1365 fix: add missing conditions for mssql parameters queries 2024-11-28 21:07:59 +01:00
Nybkox fcd6f6c8fc fix: correcttly map parameters to object list 2024-11-28 21:07:59 +01:00
Nybkox 8313d7f9f1 fix: update mssql parameters query to match ParameterInfo 2024-11-28 21:07:59 +01:00
Nybkox 3a12601103 feat: add parameters to createSql for pssql 2024-11-28 21:07:59 +01:00
Nybkox 926949dc89 fix: remove redundant field from ParameterInfo 2024-11-28 21:07:59 +01:00
Nybkox 6b155083ef feat: stored procedures and funciton parameters support for pssql 2024-11-28 21:07:59 +01:00
Nybkox 2b2ecac3ab feat: stored procedures and funciton parameters support for mssql 2024-11-28 21:07:59 +01:00
Jan Prochazka 35e9ff607d v5.5.7-beta.66 2024-11-28 18:47:35 +01:00
Jan Prochazka ae037834f2 connections UX 2024-11-28 18:45:39 +01:00
Jan Prochazka 3ac24436ba focused connection widget 2024-11-28 18:17:22 +01:00
Jan Prochazka 2ca17e826c connection tree UX 2024-11-28 17:53:22 +01:00
SPRINX0\prochazka 4fb6128499 v5.5.7-premium-beta.65 2024-11-28 15:12:52 +01:00
SPRINX0\prochazka c359332746 v5.5.7-beta.64 2024-11-28 15:11:54 +01:00
SPRINX0\prochazka 1cd8e8e376 typo 2024-11-28 15:02:27 +01:00
SPRINX0\prochazka 48ec2bdac8 connections UX 2024-11-28 14:59:19 +01:00
SPRINX0\prochazka 2283e91532 v5.5.7-beta.63 2024-11-27 18:30:05 +01:00
SPRINX0\prochazka 647894ad60 fix 2024-11-27 18:28:45 +01:00
SPRINX0\prochazka 574573abbb fix 2024-11-27 18:28:17 +01:00
SPRINX0\prochazka a735a03cd7 fix 2024-11-27 18:27:11 +01:00
SPRINX0\prochazka 83881a0dac docker build fix 2024-11-27 18:26:05 +01:00
SPRINX0\prochazka c04c6bbd2c v5.5.7-beta.62 2024-11-26 16:20:53 +01:00
SPRINX0\prochazka 42bbbc7ff4 fix job 2024-11-26 16:20:29 +01:00
SPRINX0\prochazka 1ecffeda71 default action improved & configurable 2024-11-26 15:19:39 +01:00
SPRINX0\prochazka 92992d1e95 ctx menu - open in new window 2024-11-26 14:19:20 +01:00
SPRINX0\prochazka bc9df9750f single connection mode list handler 2024-11-26 12:47:36 +01:00
SPRINX0\prochazka 27e70e8031 new UX - fixed support for singledb connections 2024-11-26 12:29:16 +01:00
SPRINX0\prochazka c823b8d19a UX 2024-11-26 09:30:37 +01:00
SPRINX0\prochazka 170ff77eec Merge branch 'feature/connection-keyboard-browse' 2024-11-26 09:11:23 +01:00
SPRINX0\prochazka c241f5c562 focused DB UX 2024-11-26 09:04:13 +01:00
SPRINX0\prochazka e06d964de4 connections UX WIP 2024-11-25 16:34:09 +01:00
SPRINX0\prochazka dfdb86de6f db widget UX 2024-11-25 15:52:26 +01:00
SPRINX0\prochazka a37b74f693 focusable databases WIP 2024-11-25 13:46:16 +01:00
SPRINX0\prochazka 398d9f15df focus connection or database WIP 2024-11-25 11:00:41 +01:00
SPRINX0\prochazka ab7c2d7a31 set tab preview mode off in markTabUnsaved 2024-11-25 08:31:24 +01:00
Jan Prochazka 090549ff91 v5.5.7-beta.61 2024-11-22 16:20:00 +01:00
Jan Prochazka 10330c6597 Merge branch 'master' of github.com:dbgate/dbgate 2024-11-22 16:19:34 +01:00
Jan Prochazka da2fe6a891 table & view preview mode switch 2024-11-22 16:19:29 +01:00
Jan Prochazka 01b88221c5 Merge pull request #945 from dbgate/feature-close-tab-hotkey-for-web
feat: add close tab hotkey for web
2024-11-22 15:26:43 +01:00
Nybkox 46d25710b8 feat: add close tab hotkey for web 2024-11-22 15:20:01 +01:00
Jan Prochazka a40ec7e66b show all databases for filtered connections 2024-11-22 11:40:51 +01:00
Jan Prochazka c8d2031d24 fix - don't call for DB list when searching in connections list 2024-11-22 11:25:46 +01:00
Jan Prochazka 4f838e0ae3 Merge branch 'feature/tab-preview-mode' 2024-11-22 10:43:24 +01:00
Jan Prochazka c7cc1b7611 theme changes (hover bg, dark selection bg) 2024-11-22 10:22:38 +01:00
Jan Prochazka bf67a5f13d UX 2024-11-22 10:15:43 +01:00
Jan Prochazka e6bbe66873 use keyboard for navigation between searchbox and table list 2024-11-22 10:03:49 +01:00
Jan Prochazka 1a930acf0a tables keyboard navigation 2024-11-22 09:45:01 +01:00
Jan Prochazka a497467137 fix 2024-11-22 08:45:30 +01:00
Jan Prochazka b463416633 Merge branch 'master' into feature/tab-preview-mode 2024-11-22 08:35:28 +01:00
Jan Prochazka ccf6240d65 Merge pull request #914 from dataspun/feature/geometry-autodetect-map
Update postgres plugin drivers.js
2024-11-22 08:28:40 +01:00
Jan Prochazka 5ccc12019d Merge pull request #943 from dbgate/feature-reopen-closed-tab
Feature reopen closed tab
2024-11-22 08:22:48 +01:00
Jan Prochazka f57fa9aee9 Merge pull request #942 from dbgate/feature-prevent-spawning-same-modal
feat: prevent spawning the same modal if one instance is opened
2024-11-22 08:21:00 +01:00
Nybkox 80e841a43d feat: add reopen closed tab command 2024-11-22 02:19:41 +01:00
Nybkox e1d759041d feat: prevent closing tab if any modal is open 2024-11-21 18:44:21 +01:00
SPRINX0\prochazka fd6df055c0 focus tab by enter 2024-11-21 17:07:18 +01:00
SPRINX0\prochazka 669d0b9dac correctly focusing tabs 2024-11-21 16:53:46 +01:00
SPRINX0\prochazka b9f9501e67 handle tab focus 2024-11-21 16:49:56 +01:00
SPRINX0\prochazka 4b1c021871 Revert "don't focus in tabs"
This reverts commit 90946c582d.
2024-11-21 16:12:27 +01:00
SPRINX0\prochazka 1f79627dbe change selected object when switching tab 2024-11-21 15:47:46 +01:00
SPRINX0\prochazka dc18be07ce #938 current database is not changed after closing tab 2024-11-21 15:03:43 +01:00
Nybkox 83ac45f8cf feat: invalidate commands on modal show/close 2024-11-21 14:32:05 +01:00
SPRINX0\prochazka c6cd865663 default action handling 2024-11-21 13:46:19 +01:00
Jan Prochazka 477636e0d7 Merge pull request #941 from dbgate/feature/word-wrap-option
feat: add word wrap option #823
2024-11-21 12:20:18 +01:00
Nybkox 77414ba934 feat: add word wrap option #823 2024-11-21 11:17:51 +01:00
SPRINX0\prochazka 86186072ed db app obj WIP 2024-11-20 17:12:54 +01:00
SPRINX0\prochazka 1216bcf9bf sql object tab refactor 2024-11-20 15:37:01 +01:00
SPRINX0\prochazka 788ea70d32 db app objc refactors 2024-11-20 15:30:47 +01:00
SPRINX0\prochazka 18de37c4e4 sql object tab 2024-11-20 14:53:06 +01:00
SPRINX0\prochazka aeb81bd97f sql object tab - ability to show template 2024-11-20 14:33:05 +01:00
SPRINX0\prochazka a68660f1ab sql object tab 2024-11-20 14:24:37 +01:00
SPRINX0\prochazka 5abfa85a0e script templates refactor 2024-11-20 13:51:18 +01:00
SPRINX0\prochazka 794f43d9ae call click when changing table by arrow 2024-11-20 11:25:07 +01:00
SPRINX0\prochazka 4b2f762200 v5.5.7-alpha.60 2024-11-20 10:19:40 +01:00
SPRINX0\prochazka fc3664571b fixed resolving plugin 2024-11-20 10:18:54 +01:00
SPRINX0\prochazka 5db8f11fd6 dbappobj highlight 2024-11-20 08:16:13 +01:00
SPRINX0\prochazka 598674a7e0 show focus in data grid 2024-11-19 16:35:55 +01:00
SPRINX0\prochazka af17eceb27 table keyboard navigation WIP 2024-11-19 15:54:18 +01:00
SPRINX0\prochazka 90946c582d don't focus in tabs 2024-11-19 14:13:58 +01:00
SPRINX0\prochazka d619e0f961 tab preview mode - basic concept #767 2024-11-19 14:10:41 +01:00
SPRINX0\prochazka 08311145c8 docs 2024-11-19 13:04:00 +01:00
SPRINX0\prochazka a80e37a208 maxMissingTablesRatio parameter 2024-11-19 12:55:42 +01:00
SPRINX0\prochazka c88114cabe link to G2 2024-11-19 12:24:47 +01:00
SPRINX0\prochazka e33f3a1492 rename view/procedure/function 2024-11-19 12:18:56 +01:00
SPRINX0\prochazka 8328fdad33 Merge branch 'master' of https://github.com/dbgate/dbgate 2024-11-19 10:35:14 +01:00
Jan Prochazka 8035380e7b commented handle autoincrement change 2024-11-19 10:34:49 +01:00
SPRINX0\prochazka b4ea528643 fix 2024-11-19 10:32:09 +01:00
Jan Prochazka b0012872fa force recreate table when changing autoincrement flag 2024-11-19 10:06:52 +01:00
SPRINX0\prochazka 274fb595a2 UX 2024-11-18 17:03:13 +01:00
SPRINX0\prochazka c7ef4b9231 UX 2024-11-18 17:03:06 +01:00
Jan Prochazka e64cfce423 fix test 2024-11-18 15:04:37 +01:00
Jan Prochazka c0c9c7be20 mysql change column to not null 2024-11-18 14:57:02 +01:00
SPRINX0\prochazka 2ae98d0c2d Merge branch 'master' of https://github.com/dbgate/dbgate 2024-11-18 13:47:47 +01:00
SPRINX0\prochazka a129834c16 fix 2024-11-18 13:47:42 +01:00
Jan Prochazka 71a9d6c5c0 fix 2024-11-18 13:47:23 +01:00
Jan Prochazka 1ce8f6bd1f set NOT NULL for column with default value 2024-11-18 13:41:29 +01:00
Jan Prochazka 85c4821606 added deploy test 2024-11-18 12:48:34 +01:00
Jan Prochazka 06ed9d7dfc fix 2024-11-18 12:40:53 +01:00
SPRINX0\prochazka 90de5edc99 v5.5.7-beta.59 2024-11-18 09:56:49 +01:00
SPRINX0\prochazka 72786e5dbb try to fix build 2024-11-18 09:56:38 +01:00
SPRINX0\prochazka d92c08548b fix 2024-11-18 09:54:08 +01:00
SPRINX0\prochazka b1893234c7 horizontal splitter improved 2024-11-18 09:25:58 +01:00
Jan Prochazka 534deff274 v5.5.7-beta.58 2024-11-18 08:31:13 +01:00
Jan Prochazka bdeffea79c remove cpu-features from build 2024-11-18 08:30:58 +01:00
Jan Prochazka ab2fdf26d2 v5.5.7-beta.57 2024-11-15 18:02:03 +01:00
Jan Prochazka 0c902f037b removed bufferutil 2024-11-15 18:01:53 +01:00
Jan Prochazka c0595aec0a code style 2024-11-15 17:16:11 +01:00
Jan Prochazka 6fdb20fc34 v5.5.7-beta.56 2024-11-15 17:14:48 +01:00
Jan Prochazka 8e74031fb1 try to fix electron app 2024-11-15 17:14:32 +01:00
Jan Prochazka 81e4b947b6 apidoc 2024-11-15 16:48:33 +01:00
Jan Prochazka c5d23410f4 docs 2024-11-15 16:28:00 +01:00
Jan Prochazka f23575c405 api documentation WIP 2024-11-15 16:09:04 +01:00
Jan Prochazka 8cb98cf643 apidoc 2024-11-15 14:45:31 +01:00
Jan Prochazka b09a558670 v5.5.7-beta.55 2024-11-15 14:01:00 +01:00
Jan Prochazka abc3c5f880 fixed windows build 2024-11-15 13:57:24 +01:00
Jan Prochazka 1c0d966c3c fix 2024-11-15 13:52:01 +01:00
Jan Prochazka 20d7264aab v5.5.7-beta.54 2024-11-15 12:10:18 +01:00
Jan Prochazka 4cf987b89a SSH optimalization 2024-11-15 12:09:24 +01:00
Jan Prochazka 5bcd3f807d v5.5.7-alpha.53 2024-11-15 12:02:11 +01:00
Jan Prochazka 9e04f2b9c6 fixed typo 2024-11-15 12:01:32 +01:00
Jan Prochazka a7ceb8951c v5.5.7-alpha.52 2024-11-15 11:51:27 +01:00
Jan Prochazka 7392b223f4 bundling refactor 2024-11-15 11:49:25 +01:00
SPRINX0\prochazka 51ce4f1bb5 fix 2024-11-14 16:48:55 +01:00
SPRINX0\prochazka 059c310aaf fix 2024-11-14 16:38:43 +01:00
SPRINX0\prochazka 11dad8ced3 Merge branch 'feature/npm-refactor-poc' 2024-11-14 15:40:17 +01:00
SPRINX0\prochazka 18ed0fc020 v5.5.7-alpha.51 2024-11-14 14:38:52 +01:00
SPRINX0\prochazka eaa1b73851 dbgatebuiltin keyword for builtin plugins 2024-11-14 14:37:24 +01:00
SPRINX0\prochazka 5c2c24e009 v5.5.7-alpha.50 2024-11-14 14:14:05 +01:00
SPRINX0\prochazka 1957531600 removed dbgateplugin keyword for builtin plugins 2024-11-14 14:13:47 +01:00
SPRINX0\prochazka e47a165e11 v5.5.7-alpha.49 2024-11-14 13:40:16 +01:00
SPRINX0\prochazka 3ca1adcb48 docs 2024-11-14 13:39:43 +01:00
SPRINX0\prochazka 66bf1c847a docs 2024-11-14 13:38:26 +01:00
SPRINX0\prochazka 47eea9b9b3 readme 2024-11-14 13:37:46 +01:00
SPRINX0\prochazka 5c5a5f3b53 documentation 2024-11-14 12:53:19 +01:00
SPRINX0\prochazka 1c7729a797 added new plugins to dbgate-serve 2024-11-14 12:35:44 +01:00
SPRINX0\prochazka cd06f13fcb optimalized NPM plugins 2024-11-14 12:27:17 +01:00
SPRINX0\prochazka 632870d448 v5.5.7-alpha.48 2024-11-14 10:48:59 +01:00
SPRINX0\prochazka 762055379a v5.5.7-alpha.47 2024-11-14 10:12:59 +01:00
SPRINX0\prochazka 7374749340 v5.5.7-alpha.46 2024-11-14 10:11:05 +01:00
SPRINX0\prochazka e379be0107 fix 2024-11-14 10:10:15 +01:00
SPRINX0\prochazka 2784053b83 v5.5.7-alpha.45 2024-11-14 08:28:14 +01:00
SPRINX0\prochazka 12c4a0d498 fix 2024-11-14 08:25:44 +01:00
SPRINX0\prochazka 35b5ea138d v5.5.7-alpha.44 2024-11-14 08:12:47 +01:00
SPRINX0\prochazka d75e1fc660 fix 2024-11-14 08:12:34 +01:00
SPRINX0\prochazka 3ab6df5da2 v5.5.7-alpha.43 2024-11-13 16:22:38 +01:00
SPRINX0\prochazka 8d4fc391a4 fix 2024-11-13 16:21:08 +01:00
SPRINX0\prochazka 35f9fc3741 v5.5.7-alpha.42 2024-11-13 16:17:50 +01:00
SPRINX0\prochazka b465f3eb99 v5.5.7-alpha.41 2024-11-13 16:15:16 +01:00
SPRINX0\prochazka c4e6a90722 v5.5.7-alpha.40 2024-11-13 16:11:11 +01:00
SPRINX0\prochazka 9cc4af2b56 build scripts 2024-11-13 16:10:05 +01:00
SPRINX0\prochazka 5ccdd7633b readme 2024-11-13 15:27:12 +01:00
SPRINX0\prochazka 880f4403cb removed publish dbgate (obsolete) 2024-11-13 15:09:36 +01:00
SPRINX0\prochazka cba391904a mongodb-client-encryption moved to optionalDependencies 2024-11-13 15:05:30 +01:00
SPRINX0\prochazka 0fc397ace5 v5.5.7-beta.39 2024-11-13 14:53:01 +01:00
SPRINX0\prochazka 56a241b7f4 try to fix build 2024-11-13 14:52:48 +01:00
SPRINX0\prochazka 97eb999e4c v5.5.7-beta.38 2024-11-13 14:34:50 +01:00
SPRINX0\prochazka 9deaa89f21 try to fix build 2024-11-13 14:34:38 +01:00
SPRINX0\prochazka 74bae65e32 fix 2024-11-13 14:26:49 +01:00
SPRINX0\prochazka 7091917578 v5.5.7-beta.37 2024-11-13 13:57:04 +01:00
SPRINX0\prochazka bbf72d9ed7 removed obsolete package 2024-11-13 13:56:56 +01:00
SPRINX0\prochazka 552d10ef48 v5.5.7-beta.36 2024-11-13 13:34:46 +01:00
SPRINX0\prochazka 7c5479157a fix 2024-11-13 13:34:35 +01:00
SPRINX0\prochazka 2463dba380 v5.5.7-beta.35 2024-11-13 13:28:07 +01:00
SPRINX0\prochazka 2f9209a92d added app to workspace when building electron app 2024-11-13 13:27:52 +01:00
SPRINX0\prochazka 370bd92518 v5.5.7-beta.34 2024-11-13 12:32:46 +01:00
SPRINX0\prochazka ec083924fc v5.5.7-alpha.33 2024-11-13 12:32:11 +01:00
SPRINX0\prochazka 22b450f7e0 fix 2024-11-13 12:31:28 +01:00
SPRINX0\prochazka 1dd73e7319 v5.5.7-alpha.32 2024-11-13 11:00:18 +01:00
SPRINX0\prochazka c4fe4b40dd v5.5.7-beta.31 2024-11-13 10:59:59 +01:00
SPRINX0\prochazka 251137ac60 centralized dependencies 2024-11-13 10:57:13 +01:00
SPRINX0\prochazka 0ad7c99274 removed optional dependencies from API and app 2024-11-13 10:48:02 +01:00
SPRINX0\prochazka f53142d98a removed native module tooling 2024-11-13 10:44:24 +01:00
SPRINX0\prochazka 1f868523b0 NPM plugin refactor 2024-11-13 10:31:01 +01:00
SPRINX0\prochazka 94db02db2e v5.5.7-beta.30 2024-11-13 09:07:09 +01:00
SPRINX0\prochazka 9f0e06e663 native module refactor POC 2024-11-13 09:06:51 +01:00
SPRINX0\prochazka c6dab85fc2 fixes 2024-11-12 17:38:18 +01:00
SPRINX0\prochazka 59aa2e3f33 v5.5.7-alpha.29 2024-11-12 09:25:27 +01:00
SPRINX0\prochazka 21b26773e6 fix 2024-11-12 09:23:02 +01:00
SPRINX0\prochazka f308c5f6b0 v5.5.7-alpha.28 2024-11-12 08:51:23 +01:00
SPRINX0\prochazka 2763b6028a data duplicator - folder settings 2024-11-12 08:35:59 +01:00
SPRINX0\prochazka a3df6d6e7d v5.5.7-alpha.27 2024-11-12 08:27:28 +01:00
SPRINX0\prochazka 473bfcbec5 shell.executeQuery supports sqlFile 2024-11-12 08:26:24 +01:00
SPRINX0\prochazka 8976c9e653 v5.5.7-alpha.26 2024-11-12 08:17:01 +01:00
SPRINX0\prochazka 86795dcc63 fix 2024-11-12 08:16:47 +01:00
SPRINX0\prochazka 9b90f15621 v5.5.7-alpha.25 2024-11-12 08:04:11 +01:00
Jan Prochazka 7d0d9d3e22 try to fix tests 2024-11-11 16:22:18 +01:00
Jan Prochazka 17f0248a3e try to remove tests 2024-11-11 16:14:35 +01:00
Jan Prochazka 25d3dcad59 fix 2024-11-11 16:09:18 +01:00
Jan Prochazka cbd857422f clickhouse test - removed from scripts deploy 2024-11-11 15:58:10 +01:00
Jan Prochazka e65b4d0c2a typo 2024-11-11 15:50:46 +01:00
Jan Prochazka 6bcebb63e4 create deploy journal is now warning 2024-11-11 15:50:32 +01:00
Jan Prochazka ac7708138c added run_count to script driver deployer 2024-11-11 15:47:46 +01:00
Jan Prochazka 9d8ec9cc6b script base deployer 2024-11-11 15:37:58 +01:00
SPRINX0\prochazka 1b8a2cb923 v5.5.7-premium-beta.24 2024-11-11 13:45:01 +01:00
SPRINX0\prochazka a97ab9c09e Merge branch 'master' of https://github.com/dbgate/dbgate 2024-11-11 13:44:29 +01:00
Jan Prochazka 9a73eb3620 fixed deploy 2024-11-11 13:20:04 +01:00
SPRINX0\prochazka f50e460335 v5.5.7-premium-beta.23 2024-11-11 13:10:46 +01:00
SPRINX0\prochazka fa72d9a39f preloaded rows fixes 2024-11-11 13:05:19 +01:00
SPRINX0\prochazka 75b4f49e31 db alter plan improvements 2024-11-11 11:07:57 +01:00
SPRINX0\prochazka a069093f6b indexes in yaml model 2024-11-11 08:42:00 +01:00
SPRINX0\prochazka 62c741198a deploy: ignoreNameRegex 2024-11-11 08:11:44 +01:00
SPRINX0\prochazka 0266d912e0 fix 2024-11-08 16:05:01 +01:00
SPRINX0\prochazka 55bc0fc93f Merge branch 'master' of https://github.com/dbgate/dbgate 2024-11-08 15:36:09 +01:00
SPRINX0\prochazka 47c00d7eb0 alter plan utility functions 2024-11-08 15:36:07 +01:00
Jan Prochazka ad9fac861e fixed deploy tests 2024-11-08 14:12:56 +01:00
SPRINX0\prochazka 14afd08fcb removed experimental status of deploy 2024-11-08 12:56:01 +01:00
SPRINX0\prochazka 319580554f fixed mssql primary key respects column order 2024-11-08 12:13:00 +01:00
SPRINX0\prochazka c750bd04ad export model - filter by schema 2024-11-08 09:12:28 +01:00
SPRINX0\prochazka bdd55d8432 export model - schema filter WIP 2024-11-07 17:38:22 +01:00
SPRINX0\prochazka 98464e414b v5.5.7-beta.22 2024-11-07 17:18:37 +01:00
SPRINX0\prochazka 2f2d9c45a3 fixed schema select #924 2024-11-07 17:17:56 +01:00
SPRINX0\prochazka 3665a0d064 Merge branch 'feature/duplicator-weak-refs' 2024-11-07 16:56:24 +01:00
SPRINX0\prochazka c19c69266a shwll connection fixes 2024-11-07 16:55:39 +01:00
SPRINX0\prochazka bafa2c2fff data duplicator fixes 2024-11-07 16:33:57 +01:00
Jan Prochazka 2d823140b9 data duplicator fix 2024-11-07 14:05:13 +01:00
Jan Prochazka 1fb4a06092 data duplicator - handle weak refs 2024-11-07 13:42:41 +01:00
SPRINX0\prochazka cb450a0313 duplicator wek refs WIP 2024-11-07 13:15:33 +01:00
SPRINX0\prochazka 7aaf6bb024 drop all objects 2024-11-07 10:07:32 +01:00
SPRINX0\prochazka 6a02ba3220 drop all objects WIP 2024-11-06 17:06:58 +01:00
SPRINX0\prochazka 83610783e0 fixed on message click 2024-11-06 16:48:22 +01:00
SPRINX0\prochazka cec26b0614 filterable messages view 2024-11-06 16:29:20 +01:00
SPRINX0\prochazka fbf288198b message view UX 2024-11-06 15:39:51 +01:00
SPRINX0\prochazka 193940fd63 view JSON log message 2024-11-06 15:25:43 +01:00
SPRINX0\prochazka bd169c316a messages view improvements 2024-11-06 14:13:43 +01:00
SPRINX0\prochazka 5315f65cfb table editor fixes 2024-11-06 13:00:53 +01:00
SPRINX0\prochazka 5a859d81d3 Merge branch 'master' of https://github.com/dbgate/dbgate 2024-11-06 12:19:45 +01:00
SPRINX0\prochazka 904fc4d500 missing file 2024-11-06 12:19:42 +01:00
Jan Prochazka 634fe18127 db diff fix 2024-11-06 12:01:43 +01:00
Jan Prochazka 89a9cc4380 Revert "reverted testEqualConstraints"
This reverts commit 57c62fbe27.
2024-11-06 11:21:39 +01:00
Jan Prochazka 57c62fbe27 reverted testEqualConstraints 2024-11-06 11:12:57 +01:00
SPRINX0\prochazka 590eff1e3b Merge branch 'feature/export-model' 2024-11-06 10:54:31 +01:00
SPRINX0\prochazka a71309a604 fix 2024-11-06 10:52:30 +01:00
SPRINX0\prochazka 343e983b64 export model feature 2024-11-06 10:47:49 +01:00
SPRINX0\prochazka e31a52b659 export model WIP 2024-11-04 17:03:52 +01:00
SPRINX0\prochazka 41162ee2c3 handling conid==__model 2024-11-04 15:21:36 +01:00
SPRINX0\prochazka 55745c18e9 invalid token fix 2024-11-04 14:17:28 +01:00
SPRINX0\prochazka 7d6b77ad2a v5.5.7-packer-beta.21 2024-11-04 11:03:33 +01:00
SPRINX0\prochazka 90813b23d8 constraint check fixed 2024-11-04 11:03:19 +01:00
SPRINX0\prochazka a999d29b1d v5.5.7-packer-beta.20 2024-11-04 10:14:32 +01:00
SPRINX0\prochazka f6f9b0a61a fix 2024-11-04 10:14:13 +01:00
SPRINX0\prochazka 724edf44cb v5.5.7-packer-beta.19 2024-11-04 09:29:29 +01:00
SPRINX0\prochazka 07248ca49f v5.5.7-packer-beta.18 2024-11-04 09:07:27 +01:00
SPRINX0\prochazka 3a068c37b5 build fix 2024-11-04 09:07:12 +01:00
SPRINX0\prochazka df44e5f6e9 #925 by default without query parameters 2024-11-04 08:59:29 +01:00
SPRINX0\prochazka 9328d966ba v5.5.7-packer-beta.17 2024-11-04 08:44:08 +01:00
SPRINX0\prochazka 1a293deec7 v5.5.7-packer.17 2024-11-04 08:40:11 +01:00
SPRINX0\prochazka 665a70ba3d load model transform 2024-11-01 16:58:25 +01:00
SPRINX0\prochazka 967587c8e4 model transform 2024-11-01 16:57:48 +01:00
SPRINX0\prochazka 4927c13e55 mdoel transform 2024-11-01 15:58:52 +01:00
SPRINX0\prochazka 1f9f997748 compare tab => premium 2024-11-01 13:28:40 +01:00
SPRINX0\prochazka 521e4ea3a2 v5.5.7-alpha.16 2024-11-01 12:39:58 +01:00
SPRINX0\prochazka 941843e4c0 generateDeploySql added to dbgateApi 2024-11-01 12:38:53 +01:00
SPRINX0\prochazka 1434a42421 readme 2024-11-01 10:21:49 +01:00
SPRINX0\prochazka 8f57d3a316 redshift driver should be only for premium 2024-11-01 10:17:13 +01:00
SPRINX0\prochazka a74b789a8c diff tools fixes 2024-11-01 10:06:23 +01:00
SPRINX0\prochazka ac4dd37249 fixed YESTERDAY filter parser 2024-11-01 10:06:13 +01:00
Jan Prochazka 75b3b4e012 comment 2024-11-01 08:36:21 +01:00
Jan Prochazka 188ab4c483 fixed view redeploy 2024-11-01 08:34:40 +01:00
Jan Prochazka f9a562808d alter view test 2024-10-31 17:01:02 +01:00
Jan Prochazka 4ea763124b fixed undelete view for SQL server 2024-10-31 16:34:00 +01:00
Jan Prochazka 836d15c68f delete columns 2024-10-31 15:42:07 +01:00
Jan Prochazka 8ce4c0a7ce test refactor 2024-10-31 15:04:34 +01:00
Jan Prochazka 9613c2c410 undelete view 2024-10-31 15:01:01 +01:00
Jan Prochazka e5d4bbadc1 deploy test refactor 2024-10-31 14:20:11 +01:00
Jan Prochazka 5d4d2a447a dbdeploy: undelete table works 2024-10-31 14:03:44 +01:00
Jan Prochazka d905962298 v5.5.7-beta.15 2024-10-31 13:02:24 +01:00
Jan Prochazka 4ab9ad6881 deleted columns prefix 2024-10-31 12:50:08 +01:00
Jan Prochazka 2ce20b5fac mark view as deleted 2024-10-31 12:35:32 +01:00
Jan Prochazka 81297383cb support for rename SQL object (mssql, postgres) 2024-10-31 10:48:32 +01:00
Jan Prochazka 2aed60390c fixed default value diff 2024-10-31 10:00:40 +01:00
Jan Prochazka 67386da136 fixed clickhouse test - skip nullability check 2024-10-31 08:59:12 +01:00
Jan Prochazka bdc40c2c02 test fix 2024-10-31 08:45:12 +01:00
SPRINX0\prochazka 1d916e43d5 fix - community app should not check license 2024-10-31 08:32:57 +01:00
SPRINX0\prochazka 98bff4925a Merge branch 'master' of https://github.com/dbgate/dbgate 2024-10-30 09:22:45 +01:00
SPRINX0\prochazka 9af2c80b05 v5.5.7-beta.14 2024-10-30 09:22:29 +01:00
Jan Prochazka 3a03c82f8d allowTableMarkDropped WIP 2024-10-30 08:58:05 +01:00
Jan Prochazka de66e75eb2 undrop WIP 2024-10-29 18:12:05 +01:00
Jan Prochazka 10d79dca4d added test - table is never dropped in deploy db 2024-10-29 18:02:31 +01:00
SPRINX0\prochazka 460f511bf6 autoIndexForeignKeysTransform for db deployer 2024-10-29 16:59:28 +01:00
SPRINX0\prochazka 81207f95d8 fixed default value comparing 2024-10-29 16:35:22 +01:00
Jan Prochazka 3d3aca3290 fixed clickhouse default value handling 2024-10-29 16:18:57 +01:00
Jan Prochazka d661b9f6a4 fixed mssql defaults 2024-10-29 16:07:51 +01:00
Jan Prochazka 7deeb78d69 default value test + fixed clickhouse default support 2024-10-29 15:52:36 +01:00
Jan Prochazka 4dcf47b81f test fix 2024-10-29 15:22:13 +01:00
Jan Prochazka a674b9b3a1 check default value 2024-10-29 15:05:43 +01:00
SPRINX0\prochazka b2aa4d9377 table diff - default values tests 2024-10-29 14:44:28 +01:00
SPRINX0\prochazka bc4a595815 handler anonymousPrimaryKey for deploy 2024-10-29 14:38:22 +01:00
SPRINX0\prochazka 2704825d03 db deploy fixes 2024-10-29 14:28:26 +01:00
SPRINX0\prochazka 456d3ba42e Merge branch 'master' of https://github.com/dbgate/dbgate 2024-10-29 08:27:04 +01:00
SPRINX0\prochazka 803a272331 #926 fixed App crashes when trying to 'Open Structure' in a readonly connection 2024-10-29 08:26:55 +01:00
Jan Prochazka 89e4bfe3e1 v5.5.7-packer-beta.13 2024-10-25 13:32:47 +02:00
Jan Prochazka 697440693e v5.5.7-packer-beta.12 2024-10-25 12:41:07 +02:00
Jan Prochazka c0cd04a96f packer - install-packages.sh script 2024-10-25 12:40:51 +02:00
Jan Prochazka c92f02bdda v5.5.7-packer-beta.11 2024-10-25 11:55:40 +02:00
Jan Prochazka c4766d163c install fix 2024-10-25 11:54:32 +02:00
Jan Prochazka 18889092aa v5.5.7-packer-beta.10 2024-10-25 11:19:13 +02:00
Jan Prochazka adafa3c5c4 delete old AMIs script 2024-10-25 11:17:52 +02:00
Jan Prochazka 91994016a7 v5.5.7-packer-beta.9 2024-10-25 09:35:08 +02:00
Jan Prochazka dfcf253217 v5.5.7-packer-beta.8 2024-10-25 09:17:57 +02:00
Jan Prochazka bd3503912f Merge tag 'v5.5.7-packer-beta.7'
v5.5.7-packer-beta.7
2024-10-25 09:17:17 +02:00
Jan Prochazka b062c5fd66 aws region missing 2024-10-25 09:07:28 +02:00
SPRINX0\prochazka b1cd60d0dd v5.5.7-packer-beta.7 2024-10-24 16:19:28 +02:00
SPRINX0\prochazka 67ac1a1c8d v5.5.7-packet-beta.7 2024-10-24 16:18:13 +02:00
SPRINX0\prochazka c166eab2e8 v5.5.7-packer-beta.6 2024-10-24 16:06:40 +02:00
SPRINX0\prochazka c6b3ced493 v5.5.7-packer-beta.5 2024-10-24 16:06:07 +02:00
SPRINX0\prochazka 4e922e806d cloud upgrade from github releases 2024-10-24 15:56:56 +02:00
Jan Prochazka 0e087565b3 v5.5.7-packer-beta.4 2024-10-24 12:17:46 +02:00
Jan Prochazka 104b25d898 v5.5.7-packer-beta.3 2024-10-24 12:11:46 +02:00
Jan Prochazka 9bdff41ec1 fixed packer build 2024-10-24 12:11:35 +02:00
Jan Prochazka d27b0a7be3 v5.5.7-packer-beta.2 2024-10-24 12:00:55 +02:00
Jan Prochazka 076b20ef6d fix 2024-10-24 12:00:42 +02:00
Jan Prochazka d93d107039 v5.5.7-packer-beta.1 2024-10-24 11:59:26 +02:00
Jan Prochazka 708dcfd088 packer pipeline 2024-10-24 11:58:44 +02:00
Jan Prochazka 14501a70b9 reporting SSH tunnel errors 2024-10-23 16:35:56 +02:00
Jan Prochazka 3b82679c2d port changed 2024-10-23 12:14:28 +02:00
SPRINX0\prochazka 48d4fb4fec UX 2024-10-23 09:49:10 +02:00
SPRINX0\prochazka a03ca73d93 admin page workflow 2024-10-23 09:41:39 +02:00
SPRINX0\prochazka a46e592cfb workflow changes 2024-10-22 17:06:56 +02:00
SPRINX0\prochazka 634bea1bda missing logging 2024-10-22 16:33:47 +02:00
SPRINX0\prochazka 3dfa23a30c sortable object list controls #922 2024-10-22 16:09:48 +02:00
SPRINX0\prochazka 24408dd7c2 empty value testing 2024-10-22 15:23:32 +02:00
Jan Prochazka 32c7919885 special pages workflow changed 2024-10-21 17:36:46 +02:00
Jan Prochazka 967615b6e5 special page refactor 2024-10-21 13:18:16 +02:00
Jan Prochazka aee3a28465 refactor 2024-10-21 13:07:29 +02:00
Jan Prochazka 3fdf27f820 special page refactor 2024-10-21 13:02:50 +02:00
Jan Prochazka e9302c7d6f performance fix 2024-10-18 15:08:59 +02:00
Jan Prochazka c38fe83e48 aws ubuntu layout 2024-10-18 13:57:55 +02:00
Jan Prochazka adfc427d25 aws AMI layout 2024-10-18 13:32:17 +02:00
Jan Prochazka 3912a58127 build ami script 2024-10-18 11:35:33 +02:00
SPRINX0\prochazka 720d25e838 changelog 2024-10-17 13:33:14 +02:00
SPRINX0\prochazka bc1d77a6f8 v5.5.6 2024-10-17 13:25:01 +02:00
SPRINX0\prochazka 00a8d472ff v5.5.6-beta.11 2024-10-17 12:53:56 +02:00
SPRINX0\prochazka 5076ee0463 v5.5.6 2024-10-17 12:52:26 +02:00
SPRINX0\prochazka 4a5ddd65f4 v5.5.6-premium-beta.10 2024-10-17 11:58:06 +02:00
SPRINX0\prochazka ec3c224f44 show storage connection error 2024-10-17 11:56:24 +02:00
SPRINX0\prochazka 39b99ecf8f v5.5.6-premium-beta.9 2024-10-15 16:51:11 +02:00
SPRINX0\prochazka 50232f9b90 v5.5.6-premium-beta.8 2024-10-15 16:24:02 +02:00
SPRINX0\prochazka 66e8cc6e1d v5.5.6-premium-beta.7 2024-10-15 15:10:16 +02:00
SPRINX0\prochazka f6b4c94d00 fix 2024-10-15 15:10:05 +02:00
SPRINX0\prochazka f3ce240bcd v5.5.6-premium-beta.6 2024-10-15 14:38:18 +02:00
SPRINX0\prochazka 7be9bf1bab logging 2024-10-15 14:37:16 +02:00
SPRINX0\prochazka d39871be70 v5.5.6-premium-beta.5 2024-10-15 13:55:19 +02:00
SPRINX0\prochazka 3324eec011 support for DEBUG_PRINT_ENV_VARIABLES 2024-10-15 13:55:00 +02:00
SPRINX0\prochazka dd9790fca5 removed deprecated mongodb useUnifiedTopology options 2024-10-15 12:30:04 +02:00
SPRINX0\prochazka 41a3769c5f fixed headers sent error 2024-10-15 12:28:47 +02:00
SPRINX0\prochazka 42601ff960 fixed mongo update for mongo4 #916 2024-10-15 10:38:44 +02:00
SPRINX0\prochazka e54cffbaf3 v5.5.6-beta.4 2024-10-15 10:21:03 +02:00
Jan Prochazka f8dbad362c Merge branch 'master' of github.com:dbgate/dbgate 2024-10-15 10:20:08 +02:00
SPRINX0\prochazka 925db50418 log 2024-10-15 10:08:15 +02:00
SPRINX0\prochazka f40db68579 process should exit on unhandled exception 2024-10-15 10:05:18 +02:00
Jan Prochazka 3afde5f1fa v5.5.6-beta.3 2024-10-15 09:44:22 +02:00
Jan Prochazka b631519009 exit forked process after PIPE is closed #917 #915 2024-10-15 09:41:02 +02:00
SPRINX0\prochazka f05c60c628 v5.5.6-premium-beta.2 2024-10-14 17:53:51 +02:00
SPRINX0\prochazka e235de6d56 versionText field added 2024-10-14 17:48:04 +02:00
SPRINX0\prochazka da47c437e0 v5.5.6-beta.1 2024-10-14 14:29:14 +02:00
SPRINX0\prochazka f0048bc6cf correctly close connections #920 2024-10-14 14:28:26 +02:00
SPRINX0\prochazka f80ae284fa correctly close idle connections #920 2024-10-14 14:03:07 +02:00
Jan Prochazka 06753ff312 v5.5.5 2024-10-11 10:22:00 +02:00
Jan Prochazka 1e07614306 changelog 2024-10-11 10:20:37 +02:00
Jan Prochazka 2d716ba43a v5.5.5-premium-beta.5 2024-10-11 09:59:28 +02:00
Jan Prochazka c39dc6295d css fix 2024-10-11 09:58:54 +02:00
Jan Prochazka 7557666135 v5.5.5-premium-beta.4 2024-10-11 09:40:30 +02:00
SPRINX0\prochazka 5ee65124cb v5.5.5-beta.3 2024-10-10 16:20:01 +02:00
SPRINX0\prochazka ab79617377 v5.5.5-premium-beta.2 2024-10-10 16:19:41 +02:00
SPRINX0\prochazka 3b2a47a4ef login admin/user switch 2024-10-10 15:39:56 +02:00
SPRINX0\prochazka 7b4d9d8717 quick login buttons 2024-10-10 15:17:54 +02:00
SPRINX0\prochazka 4c9734ac7f fixed hiding columns #887 #911 2024-10-10 13:59:41 +02:00
SPRINX0\prochazka 152e8a80ab title 2024-10-10 13:48:42 +02:00
SPRINX0\prochazka 98a348b091 CSS 2024-10-10 13:37:08 +02:00
SPRINX0\prochazka e448f63ec3 store query parameters 2024-10-10 13:21:48 +02:00
SPRINX0\prochazka 0b13850eca query parameters #913 2024-10-10 13:09:34 +02:00
SPRINX0\prochazka de97404602 redis load keys fix 2024-10-10 07:53:41 +02:00
Jeremy 2c0b76fb3f Update drivers.js
add geometry to spatial types
2024-10-09 14:20:44 -07:00
SPRINX0\prochazka cbd6ce7872 v5.5.5-premium-beta.1 2024-10-09 16:08:30 +02:00
SPRINX0\prochazka 3c479eb33c changeset function 2024-10-09 16:07:18 +02:00
SPRINX0\prochazka beaff158cc query result - use editor behaviour from driver 2024-10-08 15:12:12 +02:00
SPRINX0\prochazka 6806620d90 fixed datetime filtering #912 2024-10-08 14:38:46 +02:00
SPRINX0\prochazka 4459347169 fix 2024-10-08 13:48:50 +02:00
SPRINX0\prochazka 98e01497e9 checkout source parameter 2024-10-08 13:10:48 +02:00
SPRINX0\prochazka 4ed4c8c32c fix 2024-10-08 12:49:15 +02:00
SPRINX0\prochazka 620acecdff trial days left warning 2024-10-08 12:43:01 +02:00
SPRINX0\prochazka 2d214cfdb3 fix 2024-10-08 10:02:03 +02:00
SPRINX0\prochazka cd36259739 AWS IAM auth for PostgreSQL 2024-10-08 09:55:51 +02:00
SPRINX0\prochazka d049d8c571 AWS IAM connection for MySQL 2024-10-08 09:30:51 +02:00
SPRINX0\prochazka 7c51fcad96 AWS IAM WIP 2024-10-07 16:05:12 +02:00
SPRINX0\prochazka 1948c8ef89 fix export dialog for useSeparateSchemas=true 2024-10-07 08:22:35 +02:00
SPRINX0\prochazka f2b2ac6fd0 v5.5.4 2024-10-04 15:29:08 +02:00
SPRINX0\prochazka 4098f63ce2 changelog 2024-10-04 15:19:31 +02:00
SPRINX0\prochazka 4d903abd85 changelog 2024-10-04 15:17:42 +02:00
SPRINX0\prochazka f00eb2d3ef v5.5.4-beta.10 2024-10-04 14:54:44 +02:00
SPRINX0\prochazka 6752dcfd39 fixed crash #908 2024-10-04 14:54:29 +02:00
SPRINX0\prochazka c3022eb80a v5.5.4-premium-beta.9 2024-10-04 14:42:45 +02:00
SPRINX0\prochazka 2f6cbf25df v5.5.5 2024-10-04 14:42:03 +02:00
SPRINX0\prochazka 8dfc2e7bcd handle expired license 2024-10-04 14:32:46 +02:00
Jan Prochazka fa0ad477cc fixed crash #908 2024-10-04 07:58:32 +02:00
SPRINX0\prochazka ac6a68c38d v5.5.4-alpha.8 2024-10-03 09:58:24 +02:00
SPRINX0\prochazka 25223471e7 fix deployer 2024-10-03 09:58:03 +02:00
SPRINX0\prochazka 56535b1e6f v5.5.4-alpha.7 2024-10-02 16:04:00 +02:00
SPRINX0\prochazka 131c51f7c4 v5.4.4-alpha.7 2024-10-02 16:02:02 +02:00
SPRINX0\prochazka a27a2077ed comment 2024-10-02 10:45:06 +02:00
SPRINX0\prochazka 7758fabc89 code style 2024-10-02 10:44:35 +02:00
SPRINX0\prochazka c9da9bdd23 Merge branch 'master' of https://github.com/dbgate/dbgate 2024-10-02 10:43:32 +02:00
Jan Prochazka 9520b053af Merge pull request #907 from yoadey/master
Fix 727: access_token not a jwt
2024-10-02 10:43:27 +02:00
SPRINX0\prochazka 8a1e717c1b v5.5.4-premium-beta.6 2024-10-02 10:26:43 +02:00
SPRINX0\prochazka 21127f661a better error reporting 2024-10-02 10:25:11 +02:00
yoadey 7d614a2395 Fix 727: access_token not a jwt 2024-10-02 10:24:19 +02:00
SPRINX0\prochazka 669ae024f9 v5.5.4-beta.5 2024-10-01 16:43:09 +02:00
SPRINX0\prochazka 9d8dd558e2 fixed load postgres schema on Azure #906 2024-10-01 16:36:26 +02:00
SPRINX0\prochazka 67f58a8dfe fix 2024-10-01 12:42:56 +02:00
SPRINX0\prochazka 52d230b9e2 v5.5.4-alpha.4 2024-10-01 12:21:57 +02:00
SPRINX0\prochazka fd2a35fb4a Merge branch 'master' of https://github.com/dbgate/dbgate 2024-10-01 12:17:36 +02:00
Jan Prochazka d61b5e135f safer env vars in dbmodel connection 2024-10-01 12:17:25 +02:00
SPRINX0\prochazka ef23b786ac better error reporting 2024-10-01 12:15:22 +02:00
SPRINX0\prochazka 29a66bfcb0 v5.5.4-alpha.3 2024-10-01 11:07:52 +02:00
Jan Prochazka ef5e30df3d dbmodel - allow connection from env variables 2024-10-01 11:07:16 +02:00
SPRINX0\prochazka ab28a06bef close dbhandles after shell script (missing tableReader) 2024-10-01 10:56:52 +02:00
SPRINX0\prochazka 9910c54aa6 v5.5.4-alpha.2 2024-10-01 10:39:32 +02:00
Jan Prochazka 6ec431f471 dbmodel fix 2024-10-01 10:38:35 +02:00
Jan Prochazka 3ec7f651c1 not connected deploy test 2024-10-01 10:37:05 +02:00
SPRINX0\prochazka 87aa60bc3e v5.5.4-alpha.1 2024-10-01 09:19:47 +02:00
SPRINX0\prochazka 73874aa5a1 added missing dependency 2024-10-01 09:19:32 +02:00
Jan Prochazka 976438f860 fixed LOGIN & PASSWORD scenario #903 2024-09-27 10:46:33 +02:00
Jan Prochazka eb095b7c44 changelog 2024-09-27 10:12:07 +02:00
Jan Prochazka 3ca745e74b v5.5.3 2024-09-27 10:11:58 +02:00
Jan Prochazka 040de84d93 changelog 2024-09-27 10:10:31 +02:00
Jan Prochazka 4f1d63440e v5.5.3-beta.4 2024-09-27 08:39:17 +02:00
Jan Prochazka 7c3cf1bb67 Merge branch 'feature/copy-stdin-import' 2024-09-27 08:34:03 +02:00
Jan Prochazka cbf1b0a3cc import SQL dump tests 2024-09-27 08:33:16 +02:00
Jan Prochazka 5287a86397 import from postgres dump 2024-09-27 08:08:13 +02:00
SPRINX0\prochazka ae599ac6f6 copy from stdin WIP 2024-09-26 16:06:54 +02:00
SPRINX0\prochazka a08a8ef208 upgraded dbgate-query-splitter 2024-09-26 15:50:08 +02:00
SPRINX0\prochazka 19a4d97765 postgres copystream support 2024-09-26 15:48:29 +02:00
SPRINX0\prochazka 6f1f5f84c6 fix 2024-09-26 14:52:50 +02:00
SPRINX0\prochazka e2f352149d fix + ability to choose imported table 2024-09-26 14:49:58 +02:00
SPRINX0\prochazka 1fa39b20d2 fixedTargetName fix 2024-09-26 13:57:10 +02:00
SPRINX0\prochazka 53dc2e6f03 fixed import/export for separate schemas 2024-09-26 13:22:36 +02:00
SPRINX0\prochazka 555f30c0b3 v5.5.3-beta.3 2024-09-26 12:39:45 +02:00
SPRINX0\prochazka 7549d37a04 better column mapping 2024-09-26 12:39:29 +02:00
SPRINX0\prochazka 29072eb71b v5.5.3-beta.2 2024-09-26 12:38:05 +02:00
SPRINX0\prochazka 48e9e77be5 column drop down in column map modal 2024-09-26 12:29:24 +02:00
SPRINX0\prochazka 4dd3f15ba3 better column chooser 2024-09-26 12:14:10 +02:00
SPRINX0\prochazka 3603501ae2 show single schema only if it is default schema 2024-09-26 10:01:02 +02:00
Jan Prochazka 338180a21a fix 2024-09-26 09:44:37 +02:00
Jan Prochazka 28193ed6f3 new_table - id should be not null 2024-09-26 09:41:32 +02:00
Jan Prochazka 0509710602 handle DB errors 2024-09-26 09:38:49 +02:00
Jan Prochazka a4872b4159 fixed Syntax error when trying to sort by UUID column #895 2024-09-26 09:06:14 +02:00
Jan Prochazka 888f5c6260 v5.5.3-beta.1 2024-09-26 08:20:37 +02:00
Jan Prochazka 7a5abb5f47 Fixed separate schema mode, more logging #894 2024-09-26 08:12:51 +02:00
Jan Prochazka 61a9f02899 fix WIP 2024-09-25 17:01:14 +02:00
Jan Prochazka 354c4201f7 changelog 2024-09-25 12:07:35 +02:00
Jan Prochazka d8340087c5 v5.5.2 2024-09-25 10:50:18 +02:00
Jan Prochazka e3249c6d79 fixed readonly connection for MySQL 2024-09-25 10:49:37 +02:00
Jan Prochazka 58e65608e4 fixed postgres connections for readonly connection #900 2024-09-25 10:46:07 +02:00
Jan Prochazka 2b6fdf5a6a readme 2024-09-25 10:32:55 +02:00
Jan Prochazka 967d7849ee azure SQL in changelog 2024-09-25 10:26:38 +02:00
Jan Prochazka 7c476ab2f0 changelog 2024-09-25 09:31:40 +02:00
Jan Prochazka caaf35e45a v5.5.1 2024-09-25 09:30:23 +02:00
Jan Prochazka 6ddc9ee6c5 fix 2024-09-25 09:25:00 +02:00
Jan Prochazka 39aa250223 changelog 2024-09-25 09:23:04 +02:00
Jan Prochazka 031a92db8e v5.5.0 2024-09-25 09:22:36 +02:00
Jan Prochazka 0c2579897f fixed multiple shortcuts handling #898 2024-09-25 09:10:54 +02:00
Jan Prochazka b63479bf45 changelog 2024-09-25 08:50:44 +02:00
Jan Prochazka 4c89552265 v5.4.5-beta.15 2024-09-25 08:23:04 +02:00
SPRINX0\prochazka 517002e079 fixed importing mysql dump #702 2024-09-24 15:54:54 +02:00
SPRINX0\prochazka 85bfb1986d fixed redirect_uri parameter #891 2024-09-24 14:45:00 +02:00
SPRINX0\prochazka 632421eb73 copy connection error to clipboard 2024-09-24 14:23:06 +02:00
SPRINX0\prochazka 21365be411 v5.4.5-beta.14 2024-09-24 09:00:23 +02:00
SPRINX0\prochazka eaa54022fc css fix 2024-09-24 09:00:05 +02:00
SPRINX0\prochazka 55f7f39efd postgres - user current_schema instead of search_path 2024-09-24 08:59:58 +02:00
SPRINX0\prochazka 71e709b346 v5.4.5-beta.13 2024-09-23 09:40:49 +02:00
SPRINX0\prochazka 1d2d295a45 log driver errors, even when they are sent to client 2024-09-23 09:40:29 +02:00
SPRINX0\prochazka 5ed23beff0 v5.4.5-premium-beta.12 2024-09-20 16:48:01 +02:00
SPRINX0\prochazka 43a8db55a2 v5.4.5-beta.11 2024-09-20 16:00:53 +02:00
SPRINX0\prochazka 0a9cba7bf7 quick export from table result #892 2024-09-20 16:00:03 +02:00
SPRINX0\prochazka 02af761bf7 postgre fix 2024-09-20 15:50:16 +02:00
SPRINX0\prochazka 6882a146e7 fixed build error 2024-09-20 15:00:11 +02:00
SPRINX0\prochazka c9834f9792 Merge branch 'feature/separate-schemas-2' 2024-09-20 14:54:07 +02:00
SPRINX0\prochazka 21b4baf700 v5.4.5-beta.10 2024-09-20 14:52:47 +02:00
SPRINX0\prochazka d3a24627dd postgres - show system databases when using separate schemas 2024-09-20 14:52:29 +02:00
SPRINX0\prochazka 8aac9cf59d loading schemas indicator + error reporting 2024-09-20 14:40:14 +02:00
SPRINX0\prochazka ce70b2e71a support separate schemas for mssql 2024-09-20 13:30:39 +02:00
SPRINX0\prochazka 62a5ef60f6 v5.4.5-beta.9 2024-09-20 12:56:32 +02:00
SPRINX0\prochazka 95430e9c11 useSeparateSchemas option for docker 2024-09-20 12:35:02 +02:00
SPRINX0\prochazka 1cee36cc9b force exit after tests 2024-09-20 12:29:29 +02:00
SPRINX0\prochazka aa475f81a0 uncommented test + fix 2024-09-20 12:19:03 +02:00
SPRINX0\prochazka 1173d5db1d sqlserver fix 2024-09-20 10:49:53 +02:00
SPRINX0\prochazka f34d0cbb90 fixed SQLite 2024-09-20 10:47:51 +02:00
SPRINX0\prochazka 780d187911 skip SQLite on CI 2024-09-20 10:41:31 +02:00
SPRINX0\prochazka 48d4374346 introduced dbhandle instead of overwriting 3rd party client's fields 2024-09-20 10:27:03 +02:00
Jan Prochazka 6b8b511d0d try to comment problematic test 2024-09-19 19:01:19 +02:00
Jan Prochazka c6be115634 fixed test 2024-09-19 18:54:29 +02:00
Jan Prochazka dadde225f1 db handle 2024-09-19 18:53:12 +02:00
Jan Prochazka 31dfc1dc28 try to fix test 2024-09-19 18:42:08 +02:00
Jan Prochazka 1de163af44 unique db name prop 2024-09-19 18:38:30 +02:00
Jan Prochazka 2181eada53 fix 2024-09-19 18:35:36 +02:00
Jan Prochazka 75e63d2710 JEST --detectOpenHandles flag 2024-09-19 18:31:52 +02:00
Jan Prochazka fbfcdcbc40 Revert "test"
This reverts commit 0238e6a7f1.
2024-09-19 18:30:52 +02:00
Jan Prochazka 0238e6a7f1 test 2024-09-19 18:29:35 +02:00
Jan Prochazka be17301c91 try to fix test 2024-09-19 18:23:25 +02:00
Jan Prochazka b1118c7f43 try to fix test 2024-09-19 18:17:30 +02:00
Jan Prochazka 24bf5e5b0c fix 2024-09-19 18:10:27 +02:00
Jan Prochazka 122471f81f neutral schema cond 2024-09-19 18:03:20 +02:00
Jan Prochazka a6136cee25 skipSeparateSchemas flag 2024-09-19 17:07:34 +02:00
Jan Prochazka 83357ba2cc fix 2024-09-19 16:05:54 +02:00
Jan Prochazka 4fe10b26b0 postgre analyser fix 2024-09-19 16:00:54 +02:00
Jan Prochazka 485f6c9759 v5.4.5-beta.8 2024-09-19 15:22:00 +02:00
Jan Prochazka 732c5b763b fix 2024-09-19 15:21:41 +02:00
Jan Prochazka 4431d08a88 separate schema selector in frontend 2024-09-19 15:19:16 +02:00
Jan Prochazka cb7224ac94 fix 2024-09-19 14:23:34 +02:00
Jan Prochazka 66b39c1f80 fixes 2024-09-19 14:17:11 +02:00
Jan Prochazka b30f139b5d postgre analyser supports compisite db names 2024-09-19 14:15:22 +02:00
Jan Prochazka f39ec26c29 UI fix 2024-09-19 13:43:55 +02:00
Jan Prochazka 8c3c32aeba default schema refactor 2024-09-19 13:41:49 +02:00
Jan Prochazka 9eb27f5e92 refresh schema list 2024-09-19 11:15:44 +02:00
Jan Prochazka 3e5b45de8f schemaList moved from dbinfo to separate request 2024-09-19 10:59:09 +02:00
Jan Prochazka e7b4a6ffcc Merge branch 'feature/db-schema' 2024-09-19 09:53:55 +02:00
Jan Prochazka e7ec75138d fix 2024-09-19 09:52:54 +02:00
Jan Prochazka 6c4679d83b fixed scenario after save table 2024-09-19 09:32:49 +02:00
Jan Prochazka 5f23b29c4e create table in multi-schema 2024-09-19 09:24:08 +02:00
Jan Prochazka 55db98fe1b removed unused imports 2024-09-19 09:02:20 +02:00
Jan Prochazka f7c5ffa0ce create table - changed workflow 2024-09-19 09:00:13 +02:00
Jan Prochazka d1e98e5640 fixed incremental analysis when changed schema+test 2024-09-18 16:30:45 +02:00
Jan Prochazka e785fdf9b7 test fix for clickhouse 2024-09-18 16:16:46 +02:00
Jan Prochazka fc0db925c5 schema analyser test 2024-09-18 16:01:02 +02:00
SPRINX0\prochazka 5ab686b721 schema update in database analyser 2024-09-18 15:37:34 +02:00
SPRINX0\prochazka 327d43096f schema selector is cached by conid and database 2024-09-18 14:07:33 +02:00
SPRINX0\prochazka 1f7b632553 fix - show schema selector, when no schema is available 2024-09-18 14:01:58 +02:00
SPRINX0\prochazka 592d7987ab show objects by schemas 2024-09-18 13:50:02 +02:00
SPRINX0\prochazka c429424fda v5.4.5-beta.7 2024-09-17 17:17:32 +02:00
SPRINX0\prochazka 0b4709d383 import/export tab title 2024-09-17 17:14:57 +02:00
SPRINX0\prochazka 336929ff3f export menu changed 2024-09-17 16:56:41 +02:00
SPRINX0\prochazka 677f83cc4b fixed filtering in json columns for postgres #889 2024-09-17 16:42:07 +02:00
SPRINX0\prochazka 5c58c35a64 Merge branch 'feature/import-export' 2024-09-17 16:17:46 +02:00
SPRINX0\prochazka b346a458a6 fix 2024-09-17 16:00:59 +02:00
SPRINX0\prochazka 226512a4ca removed open wizard from shell function 2024-09-17 15:50:01 +02:00
SPRINX0\prochazka a0527d78e9 save import/export jobs 2024-09-17 15:47:40 +02:00
SPRINX0\prochazka 3357295d98 removed ImportExportModal 2024-09-17 15:19:45 +02:00
SPRINX0\prochazka fc6a43b4fe download fileat first in imports 2024-09-17 15:06:54 +02:00
SPRINX0\prochazka 260b2e4b12 JSON export - support for object style, key field, root field 2024-09-17 14:28:31 +02:00
Jan Prochazka f080b18d3f refactor 2024-09-17 13:47:28 +02:00
Jan Prochazka 56f015ffd5 JSON import rootField support 2024-09-17 13:23:51 +02:00
Jan Prochazka fd8a28831e JSON object import 2024-09-17 12:52:53 +02:00
Jan Prochazka 503e09ddd1 import test small refactor 2024-09-17 12:40:41 +02:00
Jan Prochazka 880912806a JSON import 2024-09-17 12:32:03 +02:00
SPRINX0\prochazka 665ce22741 JSON import 2024-09-17 12:16:59 +02:00
SPRINX0\prochazka e5c9ec7681 Merge branch 'feature/import-export' of https://github.com/dbgate/dbgate into feature/import-export 2024-09-17 10:45:43 +02:00
SPRINX0\prochazka 74fceeec78 fix 2024-09-17 10:45:41 +02:00
Jan Prochazka 77d60ccfa5 auto-detect CSV delimiter in test 2024-09-17 10:29:49 +02:00
SPRINX0\prochazka 0c2b25f79a auto-detect CSV delimiter 2024-09-17 10:28:58 +02:00
Jan Prochazka 4065e05013 CSV import fixed 2024-09-17 09:59:47 +02:00
Jan Prochazka 319a7fd003 csv import test (failing) 2024-09-16 18:50:14 +02:00
Jan Prochazka 26c01f43f9 drag & drop file to export/import tab 2024-09-16 17:28:30 +02:00
Jan Prochazka 88d7e07bea fixed upload file 2024-09-16 17:16:54 +02:00
SPRINX0\prochazka a9a5a3491e showModal(ImportExportModal => openImportExportTab 2024-09-16 13:03:49 +02:00
SPRINX0\prochazka d255273368 open import/export tab function 2024-09-16 12:47:13 +02:00
SPRINX0\prochazka a7846b4adf import export tab working 2024-09-16 12:15:43 +02:00
SPRINX0\prochazka ce431e6e21 fix 2024-09-16 10:25:52 +02:00
SPRINX0\prochazka f8e39a2a5d runtests on feature branch 2024-09-16 10:25:30 +02:00
SPRINX0\prochazka e5135b1a9d run tests on feature branch 2024-09-16 10:23:31 +02:00
SPRINX0\prochazka c45a6f1299 v5.4.5-beta.6 2024-09-16 10:11:21 +02:00
SPRINX0\prochazka 873e60c26a Merge branch 'develop' 2024-09-16 10:10:54 +02:00
Jan Prochazka b0134b221b added clickhouse server 2024-09-16 09:56:14 +02:00
Jan Prochazka f4bb13f617 clickhouse tests - run on CI 2024-09-16 09:51:01 +02:00
Jan Prochazka c32955a7c9 skipped some tests for clickhouse 2024-09-16 09:50:36 +02:00
Jan Prochazka f8fe444f29 clickhouse table analyser test 2024-09-16 09:47:44 +02:00
Jan Prochazka 08dd2ae38f table analyse test WIP 2024-09-13 16:30:48 +02:00
Jan Prochazka a88a64710b analysis test refactor 2024-09-13 16:11:38 +02:00
Jan Prochazka c410a7bb07 clickhouse tests 2024-09-13 15:55:33 +02:00
Jan Prochazka 0ba7b5fb39 skip preload tests for clickhouse - not supported 2024-09-13 15:51:10 +02:00
Jan Prochazka 334440f691 fixed import for clickhouse 2024-09-13 15:47:12 +02:00
Jan Prochazka 89c9d5e792 skip data duplicator 2024-09-13 15:24:29 +02:00
Jan Prochazka 0d1b6702a7 alter table tests 2024-09-13 15:11:45 +02:00
Jan Prochazka b366a7d451 alter table fixes WIP 2024-09-13 14:23:37 +02:00
Jan Prochazka c1106c1b01 v5.4.5-alpha.5 2024-09-13 13:36:55 +02:00
Jan Prochazka 9c48608588 clickhouse plugin version 2024-09-13 13:36:37 +02:00
Jan Prochazka b32a6daeab v5.4.5-alpha.4 2024-09-13 13:23:59 +02:00
Jan Prochazka b1f018905b publish clickhouse plugin 2024-09-13 13:23:46 +02:00
Jan Prochazka 17537e592f v5.4.5-alpha.3 2024-09-13 13:11:22 +02:00
Jan Prochazka 0211cf59af clickhouse tests WIP 2024-09-13 13:09:33 +02:00
Jan Prochazka 2728d60422 updated upload-artifacts action 2024-09-12 16:13:52 +02:00
Jan Prochazka e5079f6dbf v5.4.5-beta.2 2024-09-12 16:00:04 +02:00
Jan Prochazka 487ac94034 updated upload artifact action 2024-09-12 15:59:50 +02:00
Jan Prochazka fda350c05b v5.4.5-beta.1 2024-09-12 15:57:46 +02:00
Jan Prochazka 6f32e27eec fix 2024-09-12 15:53:56 +02:00
Jan Prochazka 3c4fad108b clickhouse fix 2024-09-12 15:42:16 +02:00
Jan Prochazka b232263708 clickhouse import 2024-09-12 15:39:48 +02:00
Jan Prochazka 086bc0d9f3 clickhouse export 2024-09-12 14:40:29 +02:00
Jan Prochazka e21c6d4872 clickhouse - view support, incremental structure update 2024-09-12 13:49:10 +02:00
Jan Prochazka d2e49967e4 hide indexes from clickhouse 2024-09-12 13:20:15 +02:00
Jan Prochazka 2f1cbbd75e sorting key support, clickhouse recreate table support 2024-09-12 11:59:03 +02:00
Jan Prochazka 670cfb9dc0 don't show primary key name when anonymousePrimaryKey=true 2024-09-12 09:04:52 +02:00
Jan Prochazka e54bd1da3f logs 2024-09-12 08:43:34 +02:00
Jan Prochazka fb2b47615f option allowEmptyValue flag 2024-09-12 08:37:09 +02:00
Jan Prochazka 00a6c19f09 test log messages 2024-09-12 08:24:50 +02:00
Jan Prochazka 51c8169232 Revert "try to fix build"
This reverts commit 8ab814cb8b.
2024-09-12 08:14:46 +02:00
Jan Prochazka 8ab814cb8b try to fix build 2024-09-12 07:54:45 +02:00
Jan Prochazka 577517e043 fix connection label 2024-09-12 07:01:14 +02:00
Jan Prochazka d17a667cf4 postgres and oracle don't have anonymouse PKs 2024-09-11 17:06:52 +02:00
Jan Prochazka 575f8f23a7 clickhouse: sorting key editor support 2024-09-11 16:53:11 +02:00
Jan Prochazka 33eed816aa clickhouse: rename & change column 2024-09-11 16:28:35 +02:00
Jan Prochazka 08fce96691 specificNullabilityImplementation 2024-09-11 15:43:14 +02:00
Jan Prochazka f74533b42f clickhouse: added specifcNotNull dialect option 2024-09-11 15:41:26 +02:00
Jan Prochazka fb39cd1302 clickhouse + mysql: modify table option 2024-09-11 15:09:16 +02:00
Jan Prochazka 7ad1950777 getTableFormOptions moved to dialect 2024-09-11 14:01:11 +02:00
Jan Prochazka b0165c14e9 tabl eoptions for mysql - comment, engine 2024-09-11 13:41:04 +02:00
Jan Prochazka 4f429c27c0 fix 2024-09-11 13:05:42 +02:00
Jan Prochazka ff33ec668b clickhouse: edit table options 2024-09-11 12:51:09 +02:00
Jan Prochazka f6e0b634f0 collapsible table editor parts 2024-09-11 09:53:16 +02:00
Jan Prochazka 36a65ea13a mysql - engine 2024-09-11 09:34:26 +02:00
Jan Prochazka ae9ffe1aef editing table works 2024-09-11 09:16:08 +02:00
Jan Prochazka 15c400747e table engine shown in object tree 2024-09-11 08:48:15 +02:00
Jan Prochazka 448c15c308 supportsTransactions driver parameter 2024-09-11 08:16:54 +02:00
SPRINX0\prochazka 293ef047d0 add column WIP 2024-09-10 16:32:02 +02:00
SPRINX0\prochazka 5c50faa0a2 clickhouse: show sorting key 2024-09-10 16:14:25 +02:00
SPRINX0\prochazka 18e6200c3b wip 2024-09-10 15:42:22 +02:00
SPRINX0\prochazka 8d865ab3b3 clickhouse: nullable types 2024-09-10 15:18:57 +02:00
SPRINX0\prochazka ceb51a2597 basic driver works 2024-09-10 14:38:33 +02:00
SPRINX0\prochazka f2d29f97dc clickhouse plugin - initial import 2024-09-10 14:29:51 +02:00
SPRINX0\prochazka d75f533b76 v5.4.4 2024-09-10 09:48:33 +02:00
SPRINX0\prochazka 7e74ce8366 Revert "temp build beta app - only windows"
This reverts commit 52e774f2cc.
2024-09-10 09:47:50 +02:00
SPRINX0\prochazka c2f41e51da changelog 2024-09-10 09:42:00 +02:00
SPRINX0\prochazka 9158b69b1e v5.4.4-beta.12 2024-09-10 09:29:51 +02:00
SPRINX0\prochazka f9ce6ed8f4 changelog 2024-09-10 09:23:17 +02:00
SPRINX0\prochazka 2f90106e32 v5.4.4-beta.11 2024-09-10 09:11:16 +02:00
SPRINX0\prochazka a74f6db1e0 messages 2024-09-10 09:11:04 +02:00
SPRINX0\prochazka f1ad4e190a shorter update messages 2024-09-10 09:08:30 +02:00
SPRINX0\prochazka 52e774f2cc temp build beta app - only windows 2024-09-10 09:07:05 +02:00
SPRINX0\prochazka 14331501ba fixed electron build 2024-09-10 09:06:47 +02:00
SPRINX0\prochazka 49e00a8a0f Merge branch 'autoupgrade' 2024-09-10 08:49:58 +02:00
SPRINX0\prochazka 69bc9d6111 v5.4.4-beta.10 2024-09-10 08:41:15 +02:00
SPRINX0\prochazka 64ab1bb111 autoupgrade status 2024-09-10 08:41:03 +02:00
SPRINX0\prochazka 818f4eaa10 update status with icon 2024-09-10 08:34:14 +02:00
SPRINX0\prochazka 6e6699f60a copy blockmap 2024-09-09 17:00:21 +02:00
SPRINX0\prochazka ba665931dd v5.4.4-beta.9 2024-09-09 16:58:47 +02:00
SPRINX0\prochazka 5b010bcc53 fix 2024-09-09 16:58:11 +02:00
SPRINX0\prochazka fdb5fdfadd fix 2024-09-09 16:54:11 +02:00
SPRINX0\prochazka 628d8eb5dc fix 2024-09-09 16:33:47 +02:00
SPRINX0\prochazka a78c375b90 v5.4.4-beta.8 2024-09-09 16:22:48 +02:00
SPRINX0\prochazka f5f653965f copy blockmap 2024-09-09 16:21:50 +02:00
SPRINX0\prochazka 0ea84fe034 checking for updates moved into app-ready 2024-09-09 16:16:47 +02:00
SPRINX0\prochazka 11e8cff77e v5.4.4-beta.7 2024-09-09 16:04:04 +02:00
SPRINX0\prochazka 2db3f14509 configurable auto-update mode 2024-09-09 16:03:49 +02:00
SPRINX0\prochazka db1d4aa555 v5.4.4-beta.6 2024-09-09 15:52:08 +02:00
SPRINX0\prochazka 1fcaf08644 auto close snackbar 2024-09-09 15:51:41 +02:00
SPRINX0\prochazka 703a4bdb57 checking for update 2024-09-09 15:44:34 +02:00
SPRINX0\prochazka 3303fd1ee9 removed obsolete code 2024-09-09 14:51:43 +02:00
SPRINX0\prochazka 5b796a4d88 v5.4.4-premium-beta.5 2024-09-09 13:12:47 +02:00
SPRINX0\prochazka e5ab354d15 v5.4.4-premim-beta.4 2024-09-09 13:11:54 +02:00
SPRINX0\prochazka 8fc8bc19d4 build 2024-09-09 13:11:32 +02:00
SPRINX0\prochazka 590bd166fd v5.4.4-beta.3 2024-09-09 13:09:30 +02:00
SPRINX0\prochazka 4f360eec96 premium beta build 2024-09-09 13:08:21 +02:00
SPRINX0\prochazka d9c16e6d01 v5.4.4-beta.2 2024-09-09 11:59:26 +02:00
SPRINX0\prochazka 2a94e5da27 v5.4.4-beta.1 2024-09-09 11:53:51 +02:00
SPRINX0\prochazka cb32d2152e Merge branch 'master' of https://github.com/dbgate/dbgate 2024-09-09 11:48:51 +02:00
SPRINX0\prochazka a5d482ad18 updated electron updater 2024-09-09 11:48:48 +02:00
Jan Prochazka 017366f3aa v5.4.3 2024-09-06 14:19:47 +02:00
Jan Prochazka 582c982a9c build fix 2024-09-06 14:19:26 +02:00
Jan Prochazka ad6a93bfb5 v5.4.3-beta.1 2024-09-06 14:02:04 +02:00
Jan Prochazka bc92a63111 fixed SSL with MongoDB #885 2024-09-06 13:59:17 +02:00
Jan Prochazka 5ff1009c22 fix 2024-09-06 13:52:22 +02:00
Jan Prochazka c1e6a01b63 v5.4.2 2024-09-06 13:50:32 +02:00
SPRINX0\prochazka 5daf64360c v5.4.2-beta.7 2024-09-05 15:26:02 +02:00
SPRINX0\prochazka 3fd887d6cf oracle fixes 2024-09-05 15:09:09 +02:00
SPRINX0\prochazka 486d7a946d build all platforms 2024-09-05 14:20:25 +02:00
SPRINX0\prochazka 22a81ed2ee refactor 2024-09-05 13:58:31 +02:00
SPRINX0\prochazka 77b6bddd87 oracle views fixed 2024-09-05 13:43:40 +02:00
SPRINX0\prochazka 0085505b7d v5.4.2-pro.6 2024-09-05 13:17:50 +02:00
SPRINX0\prochazka 880b07a328 support range select for oracle <12 2024-09-05 13:13:58 +02:00
SPRINX0\prochazka f0f9be3051 v5.4.2-pro.5 2024-09-05 12:59:10 +02:00
SPRINX0\prochazka 176f28a178 v5.3.2-pro.4 2024-09-05 12:36:34 +02:00
SPRINX0\prochazka e31c377d4e build only windows temporarily 2024-09-05 12:35:44 +02:00
SPRINX0\prochazka 0f247450c7 electron updater allow prerelease 2024-09-05 12:34:38 +02:00
SPRINX0\prochazka 2e67769491 v5.4.2-pro.3 2024-09-05 12:04:30 +02:00
SPRINX0\prochazka b80c428224 changed manifest build 2024-09-05 11:52:53 +02:00
SPRINX0\prochazka 6940bb4556 fix 2024-09-05 11:40:40 +02:00
SPRINX0\prochazka 44142e8b25 added info to trial payload 2024-09-05 11:05:15 +02:00
SPRINX0\prochazka ccb22be8bf v5.4.2-pro.2 2024-09-05 10:23:14 +02:00
SPRINX0\prochazka 64ff5d61a4 fix 2024-09-05 10:23:02 +02:00
SPRINX0\prochazka 32ac4c1f28 v5.4.2-pro.1 2024-09-05 10:21:32 +02:00
SPRINX0\prochazka 365e697121 builder - updater channel 2024-09-05 10:20:39 +02:00
SPRINX0\prochazka 2bf717a2eb changed publish syntax 2024-09-05 10:10:35 +02:00
SPRINX0\prochazka 9d47ea61c7 changelog 2024-09-05 09:55:49 +02:00
SPRINX0\prochazka b04b0afa03 fix 2024-09-05 09:19:56 +02:00
SPRINX0\prochazka 6ed18c2dbb v5.4.1 2024-09-04 16:49:00 +02:00
SPRINX0\prochazka a68c04b355 fix 2024-09-04 16:32:09 +02:00
SPRINX0\prochazka 25f8cb2dce comment 2024-09-04 16:20:33 +02:00
SPRINX0\prochazka a7509f511b fixed older plugins #881 2024-09-04 16:20:06 +02:00
SPRINX0\prochazka 6b31d728a8 v5.4.1-beta.2 2024-09-04 16:10:13 +02:00
SPRINX0\prochazka 787d6596bf hardware fingerprint 2024-09-04 16:08:45 +02:00
SPRINX0\prochazka a256acb203 v5.4.1-beta.1 2024-09-04 14:50:05 +02:00
SPRINX0\prochazka d19c30d0b2 trial 2024-09-04 14:46:59 +02:00
SPRINX0\prochazka faa186c1e4 trial support 2024-09-04 12:51:57 +02:00
Jan Prochazka d8467b5ae1 changelog 2024-09-03 15:17:58 +02:00
Jan Prochazka 2c096486f5 v5.4.0 2024-09-03 15:05:37 +02:00
Jan Prochazka 17e31270ae build premium app 2024-09-03 15:04:56 +02:00
Jan Prochazka 29debe0f80 v5.3.5-beta.24 2024-09-03 14:29:09 +02:00
Jan Prochazka 60bbc45cb2 isPackages plugin flag 2024-09-03 14:17:22 +02:00
Jan Prochazka 7c04dc00b1 fix 2024-09-03 13:46:43 +02:00
Jan Prochazka eb56b6eab8 v5.3.5-beta.23 2024-09-03 13:22:03 +02:00
Jan Prochazka d0d226a9e1 mac - premuim build 2024-09-03 13:21:45 +02:00
Jan Prochazka cbdda06456 electron build 2024-09-03 13:20:44 +02:00
Jan Prochazka 00ee4979fb v5.3.5-pro.22 2024-09-03 12:59:54 +02:00
Jan Prochazka 3a0a3a2ddb html files for pages 2024-09-03 12:57:52 +02:00
Jan Prochazka 90dfe889f7 trial license key info 2024-09-03 10:57:33 +02:00
Jan Prochazka 43c3a4181c v5.3.5-pro.21 2024-09-03 10:45:26 +02:00
Jan Prochazka 4838c29873 debug console 2024-09-03 10:45:13 +02:00
Jan Prochazka a3b6a7446d v5.3.5-pro.20 2024-09-03 10:17:43 +02:00
Jan Prochazka f015906347 autoupdater - premium channel 2024-09-03 10:16:46 +02:00
Jan Prochazka 40a4536d0b enabled pro windows build 2024-09-03 09:46:17 +02:00
Jan Prochazka 906ed3d237 app title 2024-09-03 09:45:44 +02:00
Jan Prochazka 416ed14a9d v5.3.5-pro.19 2024-09-03 09:26:10 +02:00
Jan Prochazka 014d1a4572 build fix 2024-09-03 09:25:59 +02:00
Jan Prochazka eec4aba2f0 v5.3.5-pro.18 2024-09-03 09:15:14 +02:00
Jan Prochazka 80a619bc85 v5.3.5-pro.16 2024-09-03 09:14:47 +02:00
Jan Prochazka 0a2a43d12b build fix 2024-09-03 09:14:37 +02:00
Jan Prochazka b671816004 v5.3.5-pro.17 2024-09-03 09:08:40 +02:00
Jan Prochazka e9c8d86937 build fix 2024-09-03 09:08:29 +02:00
Jan Prochazka 7362799a34 v5.3.5-pro.16 2024-09-03 09:06:04 +02:00
Jan Prochazka 80106f82a9 build premium 2024-09-03 09:05:52 +02:00
Jan Prochazka 891329de29 v5.3.5-pro.15 2024-09-03 09:01:44 +02:00
Jan Prochazka 34e11b351e pro build 2024-09-03 09:01:29 +02:00
Jan Prochazka 2d64d37f58 v5.3.5-pro.14 2024-09-03 08:57:57 +02:00
Jan Prochazka 915c6f42ec label 2024-09-03 08:57:51 +02:00
Jan Prochazka 875f1adb3d premium beta build 2024-09-03 08:57:00 +02:00
SPRINX0\prochazka 311bf3f706 mongo filters fixed 2024-09-02 16:03:17 +02:00
SPRINX0\prochazka 2e9daba3aa fixed number filter for mongodb and cosmosdb 2024-09-02 14:50:46 +02:00
SPRINX0\prochazka 106a09162b v5.3.5-beta.13 2024-09-02 14:16:47 +02:00
SPRINX0\prochazka 21f7623c29 fix 2024-09-02 14:15:19 +02:00
SPRINX0\prochazka 31162ef175 disabled some menu items 2024-09-02 14:05:40 +02:00
SPRINX0\prochazka 50583f928a support connect oracle via SID 2024-09-02 10:46:43 +02:00
SPRINX0\prochazka b87e53b704 connection label fixes 2024-09-02 10:18:59 +02:00
SPRINX0\prochazka 2f42319d2b fixed db url handling 2024-09-02 10:12:03 +02:00
Jan Prochazka ff8a5f1658 fix 2024-08-30 14:31:07 +02:00
Jan Prochazka be0be4d0a0 oracle fix WIP 2024-08-30 13:58:19 +02:00
Jan Prochazka 9a39fee663 support for quote identifiers 2024-08-30 12:20:35 +02:00
Jan Prochazka 075f92ac31 fix create & drop database on oracle 2024-08-30 11:00:45 +02:00
Jan Prochazka 0c4ad146b8 upgraded dbgate-query-splitter fixes #880 2024-08-30 10:26:34 +02:00
Jan Prochazka 3fa688c9cb Merge branch 'master' of github.com:dbgate/dbgate 2024-08-30 10:01:01 +02:00
Jan Prochazka fe9394103f upgraded mysql2 driver 2024-08-30 10:00:58 +02:00
Jan Prochazka b747c750e8 createDb, dropDb - catch errors 2024-08-29 19:50:46 +02:00
SPRINX0\prochazka 967daf3bb6 changeset fix - don't update autoincrement column 2024-08-29 14:15:04 +02:00
SPRINX0\prochazka c097e78dd0 preloaded rows works with autoinc columns (fix for mssql) 2024-08-29 10:53:56 +02:00
SPRINX0\prochazka e982e8cd9b v5.3.5-beta.12 2024-08-29 09:37:50 +02:00
SPRINX0\prochazka 5559d51dfb reset settings command 2024-08-29 09:37:30 +02:00
SPRINX0\prochazka 791a2e8cd4 mysql analyser & comparer fix 2024-08-28 16:53:20 +02:00
SPRINX0\prochazka d243af323e perspectives: support nosql other than mongo 2024-08-28 15:49:32 +02:00
SPRINX0\prochazka 73ec42a9c8 collections script templates 2024-08-28 14:26:34 +02:00
SPRINX0\prochazka e71d278b20 renameCollection, cloneCollection - in driver 2024-08-28 13:03:03 +02:00
Jan Prochazka 61c3ff423a SSH key file option available on web platforms #876 2024-08-28 10:16:42 +02:00
Jan Prochazka 1afa9000f8 table editor permissions 2024-08-28 09:51:34 +02:00
Jan Prochazka 75ef8ec801 v5.3.5-beta.11 2024-08-27 16:37:04 +02:00
Jan Prochazka 94dc292dc9 handle permissions 2024-08-27 16:32:53 +02:00
Jan Prochazka 74adf1dd3f new permissions 2024-08-27 12:43:19 +02:00
Jan Prochazka db6d5f498b readonly connection fixes 2024-08-27 11:20:43 +02:00
Jan Prochazka b9737533bd respect readonly connection flag in table editor 2024-08-27 11:13:10 +02:00
Jan Prochazka 93f64a6bab handle readonly connection 2024-08-27 10:49:03 +02:00
Jan Prochazka 8367cc4b59 v5.3.5-beta.10 2024-08-26 15:42:42 +02:00
Jan Prochazka e97787113c Merge branch 'grid-data-types' 2024-08-26 15:42:01 +02:00
Jan Prochazka 6fb9c4b14f Merge branch 'new-icon-2' 2024-08-26 15:41:53 +02:00
Jan Prochazka 4436ff95a8 nosql add new column GUI improved 2024-08-26 15:39:57 +02:00
Jan Prochazka d54b47f713 mogno export+import uses EJSON 2024-08-26 15:09:44 +02:00
Jan Prochazka 62de736bce refactor 2024-08-26 14:44:59 +02:00
Jan Prochazka 2232a7bab1 JSONL data editor supports data types 2024-08-26 14:26:38 +02:00
Jan Prochazka 32ebd86171 support remove fields for mongo 2024-08-26 13:25:51 +02:00
Jan Prochazka 8e17516d54 support date type 2024-08-26 11:33:29 +02:00
Jan Prochazka 3bfa7d54d0 secondary edit button 2024-08-26 10:11:09 +02:00
Jan Prochazka 60bf682449 multiline dialog fixes 2024-08-26 09:58:09 +02:00
Jan Prochazka 24c6205d81 v5.3.5-beta.9 2024-08-26 09:33:44 +02:00
Jan Prochazka 018b97b197 defaulty ts server 2024-08-26 09:33:32 +02:00
Jan Prochazka 4cbfa7c937 fixes 2024-08-26 09:32:28 +02:00
Jan Prochazka db7f3e5619 v5.3.5-beta.8 2024-08-26 08:36:39 +02:00
Jan Prochazka bcafd9a078 changed timestamp server 2024-08-26 08:36:22 +02:00
SPRINX0\prochazka eaa943a39d mongo - using ejson 2024-08-23 16:27:36 +02:00
SPRINX0\prochazka 3b813e93e7 cell display refactor 2024-08-23 16:19:04 +02:00
SPRINX0\prochazka 23a52dc79e grid data types WIP 2024-08-23 14:42:18 +02:00
Jan Prochazka 88e245da7d v5.3.5-beta.7 2024-08-23 09:20:49 +02:00
Jan Prochazka 5ee9e5098c Merge branch 'master' into new-icon-2 2024-08-23 09:20:20 +02:00
Jan Prochazka 4ea55644c4 Merge branch 'develop' 2024-08-23 09:20:01 +02:00
Jan Prochazka a13ca9f96a new icon 2024-08-23 09:14:11 +02:00
SPRINX0\prochazka ba4826559b new icon 2024-08-23 08:45:14 +02:00
Jan Prochazka 9d4803edc7 fixed switch to form and back to table rows missing #343 2024-08-22 16:49:09 +02:00
Jan Prochazka 71850f8497 nosql: show filter if not rows matched 2024-08-22 16:20:59 +02:00
Jan Prochazka ccb28783a2 new collection refactor 2024-08-22 11:48:34 +02:00
Jan Prochazka 7ad8edcdae new collection refactor + mongo drop collection fixed 2024-08-22 10:41:29 +02:00
Jan Prochazka 77b42e6a04 new collection modal refactor 2024-08-22 09:43:33 +02:00
Jan Prochazka 869e837ee5 fix 2024-08-22 08:16:31 +02:00
Jan Prochazka b27f58be9f formatting 2024-08-21 14:50:25 +02:00
Jan Prochazka a51bd70e80 generic nosql data editor 2024-08-21 13:10:28 +02:00
Jan Prochazka 95f580d51c v5.3.5-beta.6 2024-08-21 10:16:39 +02:00
Jan Prochazka 2b9fa9a70f oracle fix + package optimalization 2024-08-21 09:54:10 +02:00
Jan Prochazka 1cbeeac7cd nosql db WIP 2024-08-20 17:01:17 +02:00
Jan Prochazka d131287ca0 Cosmos name 2024-08-20 16:45:44 +02:00
Jan Prochazka 9f553ef52a fixed ordering 2024-08-20 14:24:15 +02:00
Jan Prochazka 781d6f1585 fix nosql ordering 2024-08-20 14:21:23 +02:00
Jan Prochazka 76c8f8ef62 mongo sorts - moved to plugin 2024-08-20 14:00:58 +02:00
Jan Prochazka 49e338bbbc conditionType expression 2024-08-20 13:30:53 +02:00
Jan Prochazka 968e69c7f2 DBGATE_TOOLS => DBGATE_PACKAGES 2024-08-20 12:18:55 +02:00
Jan Prochazka 8a69e94d79 Merge branch 'mongo-condition-refactor' 2024-08-20 10:30:25 +02:00
Jan Prochazka 80a4d3f238 perspectives - remove mongo hardcodes 2024-08-20 10:28:02 +02:00
Jan Prochazka 30e3bc6eeb mongo driver - collection export scripts 2024-08-20 09:15:10 +02:00
Jan Prochazka 9bc654cd38 mongo refactor WIP 2024-08-19 17:07:21 +02:00
Jan Prochazka b9ad63c926 simplified filter compiling - merged into one compiler 2024-08-19 16:50:19 +02:00
Jan Prochazka 4bdcf219f2 datetime filters added to standard filters 2024-08-19 16:47:54 +02:00
Jan Prochazka 303bd659ad mongo filtering via sql tree 2024-08-19 16:25:16 +02:00
Jan Prochazka 9fedfcbb0e mongo condition refactor 2024-08-19 15:31:54 +02:00
Jan Prochazka 8cffeaa767 dynamic filter 2024-08-19 14:03:07 +02:00
Jan Prochazka 9e28f6f3aa Merge branch 'filter-refactor' 2024-08-19 13:20:15 +02:00
Jan Prochazka 19377bbeed commented logs 2024-08-19 13:19:33 +02:00
Jan Prochazka 12d60c7ed9 fixes 2024-08-19 13:16:13 +02:00
Jan Prochazka 64e770f51e filter behaviour refactor 2024-08-19 12:57:50 +02:00
Jan Prochazka 17cf9d5007 filter behaviour WIP 2024-08-19 12:51:38 +02:00
Jan Prochazka c3609e8c7b filter behaviour WIP 2024-08-19 12:49:26 +02:00
Jan Prochazka 2a48e0c4a0 structured filter type => filterBehaviour 2024-08-19 10:26:18 +02:00
Jan Prochazka d0fa565704 refactor WIP 2024-08-19 10:23:02 +02:00
Jan Prochazka b30286cd11 removed obsolete code 2024-08-19 09:30:41 +02:00
Jan Prochazka 4b5c136589 set filter modal refactor 2024-08-19 09:27:51 +02:00
Jan Prochazka 84cd9d53b5 data filter control 2024-08-19 09:00:44 +02:00
Jan Prochazka 2ef4b534e3 filter refactor WIP 2024-08-16 16:51:04 +02:00
Jan Prochazka b7c7e41375 filter type refactor WIP 2024-08-16 16:46:55 +02:00
Jan Prochazka c0d664d399 generic drop collection 2024-08-16 12:52:37 +02:00
Jan Prochazka a89cb607b4 create collection - generic operation 2024-08-16 12:40:44 +02:00
Jan Prochazka ecde2da2af fixes 2024-08-15 14:52:38 +02:00
Jan Prochazka 7193a4d26c fix 2024-08-14 17:16:09 +02:00
Jan Prochazka 38d8a471b3 fix 2024-08-14 16:33:30 +02:00
Jan Prochazka a9f9085daa token checking 2024-08-14 15:34:08 +02:00
Jan Prochazka 83ce5710ae electron auth proxy WIP 2024-08-14 14:23:00 +02:00
Jan Prochazka ddf385caac Merge branch 'license-refactor' 2024-08-14 13:12:54 +02:00
Jan Prochazka c582902902 save license key 2024-08-14 13:12:06 +02:00
Jan Prochazka e9cd1906bc licence key 2024-08-14 12:34:24 +02:00
Jan Prochazka 2706297142 wip 2024-08-13 16:37:05 +02:00
Jan Prochazka 75465bf415 license refactor WIP 2024-08-13 16:29:07 +02:00
Jan Prochazka 42a79b2557 fix 2024-08-13 13:53:14 +02:00
Jan Prochazka 838bc34a4f azure auth moved to auth proxy 2024-08-13 13:24:34 +02:00
Jan Prochazka 63cdb4e507 UX 2024-08-12 10:55:08 +02:00
Jan Prochazka ff3c39ccad fix 2024-08-09 18:13:06 +02:00
Jan Prochazka 49597b4b01 indicator of changed rows in save button 2024-08-09 17:36:22 +02:00
Jan Prochazka a3b7490849 allowedDatabases fix 2024-08-09 08:30:15 +02:00
Jan Prochazka 45a1c58dc5 allowed databases - env variable 2024-08-08 14:17:05 +02:00
Jan Prochazka 61b9fd9210 allowed databases config 2024-08-08 14:14:13 +02:00
SPRINX0\prochazka 7c8156fbb9 v5.3.5-beta.3 2024-08-08 12:30:48 +02:00
SPRINX0\prochazka 7a0635234a Merge branch 'develop' 2024-08-08 12:30:30 +02:00
Jan Prochazka 7e5364d400 msentra auth 2024-08-08 11:45:21 +02:00
Jan Prochazka cfa08286de authProvider.redirect is async 2024-08-08 10:51:12 +02:00
Jan Prochazka 9132bfb656 azure auth - moved from plugin into API 2024-08-08 10:30:39 +02:00
Jan Prochazka a9352f2a93 config error detection 2024-08-08 09:46:42 +02:00
Jan Prochazka 47729d8cc3 auto login for single provider 2024-08-08 09:16:50 +02:00
Jan Prochazka e537b43563 multiauth 2024-08-07 17:02:19 +02:00
Jan Prochazka 5f14da3844 multiauth refactor 2024-08-07 16:28:24 +02:00
Jan Prochazka e179b0f20b logout fix 2024-08-07 15:13:47 +02:00
Jan Prochazka 35532b718a multiauth WIP 2024-08-07 14:47:33 +02:00
Jan Prochazka 42c71c1204 multiauth WIP 2024-08-07 13:58:44 +02:00
Jan Prochazka 591945dc93 css 2024-08-07 12:26:28 +02:00
Jan Prochazka ecfaa7198b multiauth 2024-08-07 12:11:03 +02:00
Jan Prochazka 27e714111b v5.3.5-beta.2 2024-08-06 15:04:28 +02:00
Jan Prochazka c086eaa510 Merge branch 'develop' 2024-08-06 15:01:16 +02:00
Jan Prochazka a7444a1475 error page handling fixes 2024-08-06 14:59:09 +02:00
Jan Prochazka 399298d3bb don't open new connection on startup, when new.connection is not enabled 2024-08-06 12:53:30 +02:00
Jan Prochazka 196c0b8a3e auth db login workflow 2024-08-06 12:45:28 +02:00
Jan Prochazka 5d6d827044 single connection support 2024-08-06 10:58:18 +02:00
Jan Prochazka 2440d6b75f Merge branch 'master' into develop 2024-08-06 10:24:42 +02:00
Jan Prochazka 623456b0a7 v5.3.5-beta.1 2024-08-06 08:55:16 +02:00
Jan Prochazka 9bfb37ab94 Revert "v5.3.5-beta.1"
This reverts commit 630d909b73.
2024-08-06 08:54:49 +02:00
Jan Prochazka 630d909b73 v5.3.5-beta.1 2024-08-06 08:52:54 +02:00
Jan Prochazka 33552e30b7 oracle - reporting error line numbers 2024-08-06 08:47:10 +02:00
Jan Prochazka a64504ba02 single conn 2024-08-05 17:15:30 +02:00
Jan Prochazka 04b195f4c6 dblogin auth 2024-08-05 17:00:29 +02:00
Jan Prochazka 17fd9035ee azure auth works 2024-08-05 14:12:24 +02:00
Jan Prochazka f867cc5a1e volatile connection map 2024-08-05 14:03:48 +02:00
Jan Prochazka 97aa563fe7 azure auth 2024-08-05 12:56:43 +02:00
Jan Prochazka fb2e261a08 azure auth 2024-08-05 11:56:49 +02:00
Jan Prochazka aad4df419c changelog 2024-08-05 09:41:36 +02:00
Jan Prochazka de60f1b335 Merge branch 'master' into develop 2024-08-05 09:32:44 +02:00
Jan Prochazka c0c06a2099 v5.3.4 2024-08-05 09:29:59 +02:00
Jan Prochazka bcfb54b7c7 v5.3.4-beta.1 2024-08-05 09:12:45 +02:00
Jan Prochazka 8b56ebfb39 fixed toolstrip bars for editors #861 2024-08-05 09:09:58 +02:00
Jan Prochazka 1128fe6c8f fixed app startup #862 2024-08-05 08:40:12 +02:00
Jan Prochazka db5f5a9153 fixed app startup #862 2024-08-05 08:39:48 +02:00
Jan Prochazka 25fb3b71ca volatile connection 2024-08-02 16:39:07 +02:00
Jan Prochazka a6822dd293 azure auth - access token obtained 2024-08-02 16:09:59 +02:00
Jan Prochazka 112513a569 azure aith wip 2024-08-02 15:12:38 +02:00
Jan Prochazka fc448ed578 azure auth WIP 2024-08-02 14:32:28 +02:00
Jan Prochazka f777530b1c database login support 2024-08-02 12:25:19 +02:00
Jan Prochazka 7fcebedcdd getConnectionLabel refactor 2024-08-02 11:49:45 +02:00
Jan Prochazka cf39fd59f9 fixed notifying volatile connections (used for askUser password scenarios) 2024-08-02 10:01:02 +02:00
Jan Prochazka 6beecd157f fix 2024-08-01 12:56:12 +02:00
Jan Prochazka 57b26a2729 Merge branch 'master' into develop 2024-08-01 08:40:41 +02:00
Jan Prochazka 6ee8ca5f86 changelog 2024-08-01 08:36:22 +02:00
Jan Prochazka 1adf1da0eb v5.3.3 2024-08-01 08:27:17 +02:00
Jan Prochazka d537a75d83 license checker 2024-07-31 16:13:59 +02:00
Jan Prochazka 2e847eee9b license checking 2024-07-31 15:36:55 +02:00
Jan Prochazka 07cb4defe6 oracledb docker install 2024-07-31 14:07:49 +02:00
Jan Prochazka 74a597164e fix 2024-07-31 13:44:53 +02:00
Jan Prochazka f7f4a0ed3f fix 2024-07-31 13:39:48 +02:00
Jan Prochazka dc45b1e75f oracle thick mode available for electron app 2024-07-31 12:06:02 +02:00
Jan Prochazka 5e68ce3218 oracle thick mode support #843 2024-07-31 11:20:31 +02:00
Jan Prochazka faf6339b41 fixes 2024-07-31 09:16:46 +02:00
Jan Prochazka 33cd3b0647 oauth in storage 2024-07-30 17:30:45 +02:00
Jan Prochazka 4c5da50a04 connections per role 2024-07-30 16:26:02 +02:00
Jan Prochazka 2c805b3357 admin page fix 2024-07-30 15:31:51 +02:00
Jan Prochazka f345c80144 fixes 2024-07-30 13:29:39 +02:00
Jan Prochazka 4346147bfc improved tabControl tabs scrolling #730 2024-07-30 13:25:33 +02:00
Jan Prochazka b0405855aa storage permissions 2024-07-30 13:01:34 +02:00
Jan Prochazka 53ee6eacb2 inner activator 2024-07-30 10:23:14 +02:00
SPRINX0\prochazka f39b3dd347 Merge branch 'master' into develop 2024-07-30 09:50:09 +02:00
SPRINX0\prochazka 385f8ff5fd v5.3.2-beta.3 2024-07-30 09:42:04 +02:00
Jan Prochazka fad8e91c7e #810 hide non active tool strip containers 2024-07-30 09:36:57 +02:00
Jan Prochazka 74b0216714 context menu activator #810 2024-07-30 09:06:25 +02:00
Jan Prochazka af3529e5e7 fix 2024-07-30 08:37:28 +02:00
Jan Prochazka d3936ae3ec permissions WIP 2024-07-29 15:46:18 +02:00
Jan Prochazka 0afee6e3fe redirect fixes 2024-07-28 08:25:53 +02:00
Jan Prochazka f1920549a8 admin access token 2024-07-27 12:14:01 +02:00
Jan Prochazka b5661afdcf admin login support 2024-07-27 11:26:03 +02:00
Jan Prochazka 38a80ec695 admin login 2024-07-26 16:40:17 +02:00
Jan Prochazka f697ba03f8 admin page support 2024-07-26 16:30:01 +02:00
Jan Prochazka feaaa35590 auth rpovider 2024-07-26 15:03:55 +02:00
Jan Prochazka 74c04cf113 denyall provider 2024-07-26 14:21:50 +02:00
Jan Prochazka 83e15ede5c getAuthProvider 2024-07-26 14:17:33 +02:00
Jan Prochazka 6a942a5058 shouldAuthorizeApi refactor 2024-07-26 14:07:06 +02:00
Jan Prochazka 8864c3489d Merge branch 'auth-provider-refactor' into develop 2024-07-26 12:31:06 +02:00
Jan Prochazka a4cb65b7b1 icons 2024-07-26 12:30:49 +02:00
Jan Prochazka c3fe20b6f9 removed LOGINS variable 2024-07-26 10:12:22 +02:00
Jan Prochazka 8db941dc06 AD auth supports basic auth 2024-07-26 09:57:27 +02:00
Jan Prochazka 05329951f9 fix 2024-07-26 09:38:05 +02:00
Jan Prochazka dd964273cd auth provider refactor 2024-07-26 09:15:22 +02:00
Jan Prochazka c3c9ad1aed auth providert refactor WIP 2024-07-25 16:47:31 +02:00
SPRINX0\prochazka cd8fe5d691 Merge branch 'master' into develop 2024-07-25 11:06:43 +02:00
Jan Prochazka 15d99f98f8 Fixed UUID filtering in lsqp #538 2024-07-25 10:59:43 +02:00
Jan Prochazka be6e0f3bc8 string_agg usage fix 2024-07-25 10:47:20 +02:00
Jan Prochazka 3867b7f5ba fix: string_agg not supported in redhist 2024-07-25 10:32:16 +02:00
SPRINX0\prochazka 1b347c7e0b v5.3.2-beta.2 2024-07-25 09:35:15 +02:00
Jan Prochazka 10664b16fe try to fix linux build 2024-07-25 09:35:05 +02:00
SPRINX0\prochazka e10e8ca161 Merge branch 'master' into develop 2024-07-24 15:43:14 +02:00
SPRINX0\prochazka c3e05e22ad v5.3.2-beta.1 2024-07-24 15:37:51 +02:00
Jan Prochazka 97753e2b11 #839 filter out timescaledb internal objects 2024-07-24 15:31:48 +02:00
Jan Prochazka 315c0670d0 improved multi column filter #855 2024-07-24 13:52:34 +02:00
Jan Prochazka e5fb3414fe ensure window bounds within display on startup #856 2024-07-24 13:20:44 +02:00
Jan Prochazka 227d81a01a fix 2024-07-24 12:48:02 +02:00
Jan Prochazka bacb9510d7 fix 2024-07-24 10:16:23 +02:00
Jan Prochazka 48209509ae Merge branch 'selected-cells-refactor' into develop 2024-07-24 10:02:20 +02:00
Jan Prochazka c2a01e4822 selected cells published refactor 2024-07-24 10:01:51 +02:00
Jan Prochazka 3e44fd823c selected cells refactor 2024-07-24 09:05:56 +02:00
Jan Prochazka 47b98041c9 Merge pull request #853 from jacobokeeffe-ow/fix/851-mongo-error-collstats
Fix 851: Loading mongo db structure fails when $collstats not supported
2024-07-11 16:00:59 +02:00
Jacob O'Keeffe 739205c192 Fix error when mongo collstats not supported 2024-07-10 16:30:19 +01:00
Jan Prochazka 8f0b44ade9 SSH info in connection refactor - do not save default values 2024-07-10 16:29:05 +02:00
Jan Prochazka cb0a11fda9 custom grid display fix 2024-07-10 15:53:26 +02:00
Jan Prochazka befada8b87 fix 2024-07-10 15:34:39 +02:00
Jan Prochazka 85a43c7a5b sqltree: notIn support 2024-07-10 14:36:25 +02:00
Jan Prochazka 50b64cf0c6 custyom grid display additional condition 2024-07-10 12:55:37 +02:00
Jan Prochazka 5c080568d8 changeSetInsertDocuments improved 2024-07-10 12:08:23 +02:00
Jan Prochazka 9d5c7e6df2 of not exitsts fields 2024-07-10 11:57:41 +02:00
Jan Prochazka 4864a376c6 custom grid 2024-07-09 16:09:05 +02:00
Jan Prochazka ef77dbf768 fix 2024-07-09 14:17:27 +02:00
Jan Prochazka 7999148f3c custom data grid support 2024-07-09 13:25:39 +02:00
Jan Prochazka ed134d787b refDeleteAction, refUpdateAction 2024-07-09 09:22:51 +02:00
Jan Prochazka f04a3bdbd5 icons 2024-07-08 17:10:12 +02:00
Jan Prochazka 2a56b562eb changeset: support save document to SQL 2024-07-08 15:56:23 +02:00
Jan Prochazka 2199a49126 editable connection 2024-07-08 15:02:46 +02:00
Jan Prochazka 14db7b1a98 publish selectedCellsPublished 2024-07-08 12:22:16 +02:00
SPRINX0\prochazka 314b72f148 Merge branch 'master' into develop 2024-07-08 08:23:41 +02:00
Jan Prochazka ebcad6eded Merge pull request #828 from tumit/master
feat: add 'Copy only headers' feature
2024-07-08 08:12:48 +02:00
Jan Prochazka edad03d988 changed license, added LICENSE-OLD to plugin-oracle 2024-06-26 20:41:14 +02:00
Jan Prochazka 062c4053ca license info 2024-06-25 21:55:43 +02:00
Jan Prochazka f20a802068 license change 2024-06-25 21:30:49 +02:00
Jan Prochazka a612fc1649 old license 2024-06-25 21:28:12 +02:00
Jan Prochazka bb38778853 old license 2024-06-25 21:27:22 +02:00
Jan Prochazka 409b1c84e7 Update LICENSE 2024-06-25 21:23:50 +02:00
Jan Prochazka db8b8feb3e pro tabs 2024-06-24 16:20:44 +02:00
Jan Prochazka 6cdbfd1a89 admin menu widget 2024-06-24 14:59:36 +02:00
Jan Prochazka 49c90b9be9 icons from former develop 2024-06-24 14:52:38 +02:00
Jan Prochazka 8043869332 cherri pick file 2024-06-24 14:51:23 +02:00
Jan Prochazka 9f9c4d82da storage DB 2024-06-24 14:49:48 +02:00
Jan Prochazka 297b321bc8 convert dbmodel to json 2024-06-24 14:49:40 +02:00
Jan Prochazka a8999855bf --version in dbmodel 2024-06-24 14:49:25 +02:00
Jan Prochazka 0c12dcaf16 storage controller 2024-06-24 14:49:18 +02:00
Jan Prochazka 954df821a5 changelog 2024-06-21 09:38:12 +02:00
Jan Prochazka d68d9206b4 v5.3.1 2024-06-21 09:35:09 +02:00
Jan Prochazka 9d99c01018 v5.3.1-beta.3 2024-06-21 08:03:30 +02:00
Jan Prochazka 16ed91b147 fixed regression #819 2024-06-21 07:58:12 +02:00
Jan Prochazka 4d32e57947 v5.3.1-beta.2 2024-06-17 17:06:55 +02:00
Jan Prochazka 4d25fef37d fixed singledb docker connections 2024-06-17 17:06:00 +02:00
Jan Prochazka 25835ee19f v5.3.1-beta.1 2024-06-17 11:38:45 +02:00
Jan Prochazka 2cd3aac158 #816 fixed redshift DB 2024-06-17 11:38:18 +02:00
tumit e6cdc63e61 feat: add 'Copy only headers' feature 2024-06-12 13:50:54 +07:00
Jan Prochazka ee671297bf added version to error gist 2024-06-07 15:25:26 +02:00
Jan Prochazka ce895f92cd Merge branch 'master' of github.com:dbgate/dbgate 2024-06-07 10:56:30 +02:00
Jan Prochazka 4e746a3055 Merge pull request #787 from michael-pattern/feat/763/per-user_permissions_when_using_oauth-follow-up
feat: per-user permissions when using oauth, follow-up
2024-06-07 10:54:45 +02:00
Jan Prochazka 5bc0af1fba changelog 2024-06-07 10:27:36 +02:00
Jan Prochazka 66a9e0d14a v5.3.0 2024-06-07 10:18:15 +02:00
Jan Prochazka b536b56348 v5.2.10-beta.4 2024-06-03 13:09:58 +02:00
Jan Prochazka ad6a22d2a6 #811 fixed columns in mongodb query 2024-06-03 12:43:59 +02:00
Jan Prochazka 64d9b26d79 allow specify username to redis connection 2024-06-03 11:00:13 +02:00
Jan Prochazka 284606e3d5 collection allows switch tab 2024-06-03 10:29:33 +02:00
Jan Prochazka e8129fd499 handle error with no structure 2024-06-03 10:27:25 +02:00
Jan Prochazka d454da325f fix: DB list for different connection 2024-06-03 10:14:17 +02:00
Jan Prochazka 5c703c786d Merge branch 'master' of github.com:dbgate/dbgate 2024-06-03 09:50:14 +02:00
Jan Prochazka 864c5bb208 switch database command 2024-06-03 09:50:08 +02:00
Jan Prochazka 504d16f189 v5.2.10-beta.3 2024-06-03 08:06:47 +02:00
Jan Prochazka d87af2a820 oracle version getter 2024-06-03 08:06:05 +02:00
Jan Prochazka 4e6e0a79c4 oracle version fallback 2024-06-03 07:53:12 +02:00
Jan Prochazka f4fbb28124 oracle: bulk inserter 2024-06-01 16:28:46 +02:00
Jan Prochazka 1c03a8ce9e v5.2.10-beta.2 2024-06-01 14:38:22 +02:00
Jan Prochazka 5bf2cf2784 Merge branch 'new-oracle-driver' 2024-06-01 14:38:01 +02:00
Jan Prochazka e572cd392c removed experimental oracle status 2024-06-01 14:36:57 +02:00
Jan Prochazka a812ff510d oracle: import data works 2024-06-01 14:35:40 +02:00
Jan Prochazka cafe0e68c3 fixes 2024-06-01 13:08:51 +02:00
Jan Prochazka 728f3621eb fix 2024-06-01 12:37:57 +02:00
Jan Prochazka ca0ae2084c oracle: handle statements in stream 2024-06-01 10:49:38 +02:00
Jan Prochazka 0cc7a98391 oracle: fixed commit 2024-06-01 08:36:13 +02:00
Jan Prochazka 68a40e5da6 oracle: upgraded query spliiter 2024-06-01 08:16:37 +02:00
Jan Prochazka bbf2e2f7ed fixes 2024-06-01 08:12:18 +02:00
Jan Prochazka 1f75a818c8 oracle: code cleanup, not null detection 2024-05-31 17:03:35 +02:00
Jan Prochazka ebdcd9ad94 oracle: detect autoincrement column 2024-05-31 16:49:43 +02:00
Jan Prochazka 2d1ac97191 oracle: fixed analysing constraints 2024-05-31 16:45:33 +02:00
Jan Prochazka 8f5b395935 oracle analyser code cleanup 2024-05-31 16:06:39 +02:00
Jan Prochazka df60d40134 oracle - using default schema 2024-05-31 15:21:49 +02:00
Jan Prochazka 2723c41832 oracle analyser per schema 2024-05-31 14:35:35 +02:00
Jan Prochazka a2102a51a1 use oracledb purejs client 2024-05-31 10:17:48 +02:00
Jan Prochazka 958d786dfb use .env instead of .env.local 2024-05-31 10:03:06 +02:00
Jan Prochazka e2526082b8 v5.2.10-beta.1 2024-05-31 08:54:35 +02:00
Jan Prochazka 0d22c675b6 #803 2024-05-31 08:28:32 +02:00
Jan Prochazka ab481121f9 changelog 2024-05-29 20:50:48 +02:00
Jan Prochazka e9ee52ac9d v5.2.9 2024-05-29 20:45:58 +02:00
Jan Prochazka 5eecb45961 printSecrets job 2024-05-29 07:17:25 +02:00
Jan Prochazka 94e991b059 v5.2.9-beta.6 2024-05-29 07:10:33 +02:00
Jan Prochazka 373a35fe65 Revert "Merge pull request #744 from Bare7a/postgresql-user-type-enhancements"
This reverts commit fdabe1eeaa, reversing
changes made to 4429b1d618.
2024-05-29 07:09:43 +02:00
Jan Prochazka eba5bd9c2b v5.2.9-beta.5 2024-05-27 18:06:27 +02:00
Jan Prochazka ca3507f5d4 fixed electron logs 2024-05-27 18:04:54 +02:00
Jan Prochazka 4f5db15c20 logging 2024-05-27 14:05:44 +02:00
Jan Prochazka 22bed04d13 gist - configurable token 2024-05-27 14:01:58 +02:00
Jan Prochazka d3737b4e08 v5.2.9-beta.4 2024-05-27 12:13:34 +02:00
Jan Prochazka 20c1315380 pg more analyser logs 2024-05-27 12:02:40 +02:00
Jan Prochazka e9442bd633 postgreSQL - extended nalyser logs 2024-05-27 11:43:38 +02:00
Jan Prochazka 59bd699fc6 v5.2.9-beta.3 2024-05-24 14:19:41 +02:00
Jan Prochazka cc3fd605de add gist upload secret 2024-05-24 14:18:57 +02:00
Jan Prochazka 0adf730f0b use gist secret 2024-05-24 14:13:12 +02:00
Jan Prochazka 5ab0907bd8 upload error to gist 2024-05-24 13:12:07 +02:00
Jan Prochazka e04da15f72 fix mongo reload - using setLoadedRows instead of bind:loadedRows 2024-05-24 10:47:38 +02:00
Jan Prochazka 5fe55af3b7 feat(mongo): fixed data writes after mongo driver upgrade #798 2024-05-24 09:37:44 +02:00
Jan Prochazka 79793d1b58 socket fix 2024-05-24 09:36:04 +02:00
Jan Prochazka d00ee890e5 fixed stream 2024-05-20 20:15:53 +02:00
Jan Prochazka 7d984d8faf feat(mjs): added crypto imports 2024-05-20 19:48:21 +02:00
Jan Prochazka 153f40f13e removed uuid dependency from api package 2024-05-20 19:15:03 +02:00
Jan Prochazka 134d8d1b1a feat(mjs): refactor 2024-05-20 19:00:11 +02:00
Jan Prochazka 2678daab4d Merge pull request #779 from Shah-Panam/Oauth-Allowed-Groups
Added OAuth Allowed Groups Option
2024-05-20 15:08:58 +02:00
Jan Prochazka 781ee15304 Merge commit '51d4bc9a75cdf28831b941f8ed73bd4644a2ca4e' 2024-05-20 14:03:18 +02:00
michael-pattern 4214b4f613 Use LOGIN_PERMISSIONS_* to compile permissions directly instead of creating logins. Accept req.user.login in hasPermission 2024-05-17 10:59:20 -04:00
michael-pattern cb9921918f Make use of LOGINS and OAUTH_PERMISSIONS exclusive 2024-05-15 12:40:09 -04:00
Panam Shah 9839dc795b Added OAuth Allowed Groups Option 2024-05-14 11:40:53 +00:00
802 changed files with 177615 additions and 10319 deletions
+48 -31
View File
@@ -1,21 +1,27 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Electron app BETA
on:
'on':
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
- v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-12, windows-2022, ubuntu-22.04]
# os: [macOS-10.15]
os:
- macos-14
- windows-2022
- ubuntu-22.04
steps:
- name: Install python 3.11 (MacOS)
if: matrix.os == 'macos-14'
run: |
brew install python@3.11
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
@@ -23,56 +29,58 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 18.x
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: yarn adjustPackageJson
node-version: 22.x
- name: adjustPackageJson
run: |
yarn adjustPackageJson
node adjustPackageJson --community
- name: setUpdaterChannel beta
run: |
node setUpdaterChannel beta
- name: yarn set timeout
run: |
yarn config set network-timeout 100000
- name: yarn install
run: |
yarn install
- name: setCurrentVersion
run: |
yarn setCurrentVersion
- name: fillNativeModulesElectron
- name: printSecrets
run: |
yarn fillNativeModulesElectron
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: fillPackagedPlugins
run: |
yarn fillPackagedPlugins
- name: Install Snapcraft
if: matrix.os == 'ubuntu-22.04'
uses: samuelmeuli/action-snapcraft@v1
- name: Publish
run: |
yarn run build:app
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }} # token for electron publish
GH_TOKEN: ${{ secrets.GH_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
# WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
# WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
- name: publishSnap
if: matrix.os == 'ubuntu-22.04'
run: |
snapcraft upload --release=beta app/dist/*.snap
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
- name: Copy artifacts
run: |
mkdir artifacts
@@ -84,8 +92,10 @@ jobs:
cp app/dist/*win*.exe artifacts/dbgate-beta.exe || true
cp app/dist/*win_x64.zip artifacts/dbgate-windows-beta.zip || true
cp app/dist/*win_arm64.zip artifacts/dbgate-windows-beta-arm64.zip || true
cp app/dist/*-mac_x64.dmg artifacts/dbgate-beta.dmg || true
cp app/dist/*-mac_universal.dmg artifacts/dbgate-beta.dmg || true
cp app/dist/*-mac_x64.dmg artifacts/dbgate-beta-x64.dmg || true
cp app/dist/*-mac_arm64.dmg artifacts/dbgate-beta-arm64.dmg || true
mv app/dist/*.snap artifacts/dbgate-beta.snap || true
mv app/dist/*.exe artifacts/ || true
mv app/dist/*.zip artifacts/ || true
@@ -94,18 +104,25 @@ jobs:
mv app/dist/*.deb artifacts/ || true
mv app/dist/*.snap artifacts/ || true
mv app/dist/*.dmg artifacts/ || true
mv app/dist/*.blockmap artifacts/ || true
mv app/dist/*.yml artifacts/ || true
rm artifacts/builder-debug.yml
- name: Upload artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: 'artifacts/**'
files: artifacts/**
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Print content of notarization-error.log
if: failure() && matrix.os == 'macos-14'
run: |
find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;
+161
View File
@@ -0,0 +1,161 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Electron app PREMIUM BETA
'on':
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-14
- windows-2022
- ubuntu-22.04
steps:
- name: Install python 3.11 (MacOS)
if: matrix.os == 'macos-14'
run: |
brew install python@3.11
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: adjustPackageJson
run: |
cd ..
cd dbgate-merged
node adjustPackageJson --premium
- name: setUpdaterChannel premium-beta
run: |
cd ..
cd dbgate-merged
node setUpdaterChannel premium-beta
- name: yarn set timeout
run: |
cd ..
cd dbgate-merged
yarn config set network-timeout 100000
- name: yarn install
run: |
cd ..
cd dbgate-merged
yarn install
- name: setCurrentVersion
run: |
cd ..
cd dbgate-merged
yarn setCurrentVersion
- name: printSecrets
run: |
cd ..
cd dbgate-merged
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: fillPackagedPlugins
run: |
cd ..
cd dbgate-merged
yarn fillPackagedPlugins
- name: Publish
run: |
cd ..
cd dbgate-merged
yarn run build:app
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
- name: Copy artifacts
run: |
mkdir artifacts
cp ../dbgate-merged/app/dist/*.deb artifacts/dbgate-premium-beta.deb || true
cp ../dbgate-merged/app/dist/*x86*.AppImage artifacts/dbgate-premium-beta.AppImage || true
cp ../dbgate-merged/app/dist/*arm64*.AppImage artifacts/dbgate-premium-beta-arm64.AppImage || true
cp ../dbgate-merged/app/dist/*armv7l*.AppImage artifacts/dbgate-premium-beta-armv7l.AppImage || true
cp ../dbgate-merged/app/dist/*win*.exe artifacts/dbgate-premium-beta.exe || true
cp ../dbgate-merged/app/dist/*win_x64.zip artifacts/dbgate-windows-premium-beta.zip || true
cp ../dbgate-merged/app/dist/*win_arm64.zip artifacts/dbgate-windows-premium-beta-arm64.zip || true
cp ../dbgate-merged/app/dist/*-mac_universal.dmg artifacts/dbgate-premium-beta.dmg || true
cp ../dbgate-merged/app/dist/*-mac_x64.dmg artifacts/dbgate-premium-beta-x64.dmg || true
cp ../dbgate-merged/app/dist/*-mac_arm64.dmg artifacts/dbgate-premium-beta-arm64.dmg || true
mv ../dbgate-merged/app/dist/*.snap artifacts/dbgate-premium-beta.snap || true
mv ../dbgate-merged/app/dist/*.exe artifacts/ || true
mv ../dbgate-merged/app/dist/*.zip artifacts/ || true
mv ../dbgate-merged/app/dist/*.tar.gz artifacts/ || true
mv ../dbgate-merged/app/dist/*.AppImage artifacts/ || true
mv ../dbgate-merged/app/dist/*.deb artifacts/ || true
mv ../dbgate-merged/app/dist/*.snap artifacts/ || true
mv ../dbgate-merged/app/dist/*.dmg artifacts/ || true
mv ../dbgate-merged/app/dist/*.blockmap artifacts/ || true
mv ../dbgate-merged/app/dist/*.yml artifacts/ || true
rm artifacts/builder-debug.yml
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: artifacts/**
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Print content of notarization-error.log
if: failure() && matrix.os == 'macos-14'
run: |
cd ..
cd dbgate-merged
find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;
+161
View File
@@ -0,0 +1,161 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Electron app PREMIUM
'on':
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-14
- windows-2022
- ubuntu-22.04
steps:
- name: Install python 3.11 (MacOS)
if: matrix.os == 'macos-14'
run: |
brew install python@3.11
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: adjustPackageJson
run: |
cd ..
cd dbgate-merged
node adjustPackageJson --premium
- name: setUpdaterChannel premium
run: |
cd ..
cd dbgate-merged
node setUpdaterChannel premium
- name: yarn set timeout
run: |
cd ..
cd dbgate-merged
yarn config set network-timeout 100000
- name: yarn install
run: |
cd ..
cd dbgate-merged
yarn install
- name: setCurrentVersion
run: |
cd ..
cd dbgate-merged
yarn setCurrentVersion
- name: printSecrets
run: |
cd ..
cd dbgate-merged
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: fillPackagedPlugins
run: |
cd ..
cd dbgate-merged
yarn fillPackagedPlugins
- name: Publish
run: |
cd ..
cd dbgate-merged
yarn run build:app
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
- name: Copy artifacts
run: |
mkdir artifacts
cp ../dbgate-merged/app/dist/*.deb artifacts/dbgate-premium-latest.deb || true
cp ../dbgate-merged/app/dist/*x86*.AppImage artifacts/dbgate-premium-latest.AppImage || true
cp ../dbgate-merged/app/dist/*arm64*.AppImage artifacts/dbgate-premium-latest-arm64.AppImage || true
cp ../dbgate-merged/app/dist/*armv7l*.AppImage artifacts/dbgate-premium-latest-armv7l.AppImage || true
cp ../dbgate-merged/app/dist/*win*.exe artifacts/dbgate-premium-latest.exe || true
cp ../dbgate-merged/app/dist/*win_x64.zip artifacts/dbgate-windows-premium-latest.zip || true
cp ../dbgate-merged/app/dist/*win_arm64.zip artifacts/dbgate-windows-premium-latest-arm64.zip || true
cp ../dbgate-merged/app/dist/*-mac_universal.dmg artifacts/dbgate-premium-latest.dmg || true
cp ../dbgate-merged/app/dist/*-mac_x64.dmg artifacts/dbgate-premium-latest-x64.dmg || true
cp ../dbgate-merged/app/dist/*-mac_arm64.dmg artifacts/dbgate-premium-latest-arm64.dmg || true
mv ../dbgate-merged/app/dist/*.snap artifacts/dbgate-premium-latest.snap || true
mv ../dbgate-merged/app/dist/*.exe artifacts/ || true
mv ../dbgate-merged/app/dist/*.zip artifacts/ || true
mv ../dbgate-merged/app/dist/*.tar.gz artifacts/ || true
mv ../dbgate-merged/app/dist/*.AppImage artifacts/ || true
mv ../dbgate-merged/app/dist/*.deb artifacts/ || true
mv ../dbgate-merged/app/dist/*.snap artifacts/ || true
mv ../dbgate-merged/app/dist/*.dmg artifacts/ || true
mv ../dbgate-merged/app/dist/*.blockmap artifacts/ || true
mv ../dbgate-merged/app/dist/*.yml artifacts/ || true
rm artifacts/builder-debug.yml
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: artifacts/**
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Print content of notarization-error.log
if: failure() && matrix.os == 'macos-14'
run: |
cd ..
cd dbgate-merged
find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;
+47 -87
View File
@@ -1,25 +1,27 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Electron app
on:
'on':
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
# - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
# branches:
# - production
- v[0-9]+.[0-9]+.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# os: [ubuntu-22.04, windows-2016]
os: [macos-12, windows-2022, ubuntu-22.04]
os:
- macos-14
- windows-2022
- ubuntu-22.04
steps:
- name: Install python 3.11 (MacOS)
if: matrix.os == 'macos-14'
run: |
brew install python@3.11
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
@@ -27,62 +29,57 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 18.x
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: yarn adjustPackageJson
node-version: 22.x
- name: adjustPackageJson
run: |
yarn adjustPackageJson
node adjustPackageJson --community
- name: yarn set timeout
run: |
yarn config set network-timeout 100000
- name: yarn install
run: |
# yarn --version
# yarn config set network-timeout 300000
yarn install
- name: setCurrentVersion
run: |
yarn setCurrentVersion
- name: fillNativeModulesElectron
- name: printSecrets
run: |
yarn fillNativeModulesElectron
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: fillPackagedPlugins
run: |
yarn fillPackagedPlugins
- name: Install Snapcraft
if: matrix.os == 'ubuntu-22.04'
uses: samuelmeuli/action-snapcraft@v1
- name: Publish
run: |
yarn run build:app
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }} # token for electron publish
GH_TOKEN: ${{ secrets.GH_TOKEN }}
WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
# WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
# WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
- name: generatePadFile
run: |
yarn generatePadFile
- name: publishSnap
if: matrix.os == 'ubuntu-22.04'
run: |
snapcraft upload --release=stable app/dist/*.snap
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
- name: Copy artifacts
run: |
mkdir artifacts
@@ -91,81 +88,44 @@ jobs:
cp app/dist/*x86*.AppImage artifacts/dbgate-latest.AppImage || true
cp app/dist/*arm64*.AppImage artifacts/dbgate-latest-arm64.AppImage || true
cp app/dist/*armv7l*.AppImage artifacts/dbgate-latest-armv7l.AppImage || true
cp app/dist/*.exe artifacts/dbgate-latest.exe || true
cp app/dist/*win*.exe artifacts/dbgate-latest.exe || true
cp app/dist/*win_x64.zip artifacts/dbgate-windows-latest.zip || true
cp app/dist/*win_arm64.zip artifacts/dbgate-windows-latest-arm64.zip || true
cp app/dist/*-mac_universal.dmg artifacts/dbgate-latest.dmg || true
cp app/dist/*-mac_x64.dmg artifacts/dbgate-latest-x64.dmg || true
cp app/dist/*-mac_arm64.dmg artifacts/dbgate-latest-arm64.dmg || true
mv app/dist/*.snap artifacts/dbgate-latest.snap || true
mv app/dist/*.exe artifacts/ || true
mv app/dist/*.zip artifacts/ || true
mv app/dist/*.tar.gz artifacts/ || true
mv app/dist/*.AppImage artifacts/ || true
mv app/dist/*.deb artifacts/ || true
mv app/dist/*.snap artifacts/ || true
mv app/dist/*.dmg artifacts/ || true
mv app/dist/*.snap artifacts/dbgate-latest.snap || true
mv app/dist/*.blockmap artifacts/ || true
# - name: Copy artifacts Linux, MacOs
# if: matrix.os != 'windows-2016'
# run: |
# mkdir artifacts
# cp app/dist/*.AppImage artifacts/ || true
# cp app/dist/*.dmg artifacts/ || true
# cp app/dist/*.deb artifacts/ || true
# mv app/dist/*.deb artifacts/dbgate-linux.deb || true
# mv app/dist/*.AppImage artifacts/dbgate-linux.AppImage || true
# mv app/dist/*.dmg artifacts/dbgate-mac.dmg || true
# - name: Copy artifacts Win
# if: matrix.os == 'windows-2016'
# run: |
# mkdir artifacts
# cp app/dist/*.exe artifacts/ || true
# mv app/dist/*.exe artifacts/dbgate-windows.exe
# mv app/dist/latest.yml artifacts/latest.yml || true
- name: Copy latest.yml (windows)
mv app/dist/*.yml artifacts/ || true
rm artifacts/builder-debug.yml
- name: Copy PAD file
if: matrix.os == 'windows-2022'
run: |
mv app/dist/latest.yml artifacts/latest.yml || true
mv app/dist/dbgate-pad.xml artifacts/ || true
- name: Copy latest-linux.yml
if: matrix.os == 'ubuntu-22.04'
run: |
mv app/dist/latest-linux.yml artifacts/latest-linux.yml || true
- name: Copy latest-mac.yml
if: matrix.os == 'macos-12'
run: |
mv app/dist/latest-mac.yml artifacts/latest-mac.yml || true
- name: Upload artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: 'artifacts/**'
files: artifacts/**
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Print content of notarization-error.log
if: failure() && matrix.os == 'macos-14'
run: |
# - name: Create Release
# id: create_release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ github.ref }}
# release_name: Release ${{ github.ref }}
# draft: false
# prerelease: false
find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;
+142
View File
@@ -0,0 +1,142 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Cloud images PREMIUM
'on':
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-packer-beta.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
steps:
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install jq
run: |
sudo apt-get install jq -y
- name: Setup `packer`
uses: hashicorp/setup-packer@main
with:
version: latest
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: adjustPackageJson
run: |
cd ..
cd dbgate-merged
node adjustPackageJson --premium
- name: yarn install
run: |
cd ..
cd dbgate-merged
yarn install
- name: setCurrentVersion
run: |
cd ..
cd dbgate-merged
yarn setCurrentVersion
- name: printSecrets
run: |
cd ..
cd dbgate-merged
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: Prepare packer build
run: |
cd ..
cd dbgate-merged
yarn run prepare:packer
cd packer
zip -r cloud-build.zip build
- name: Copy artifacts
run: |
mkdir artifacts
cp ../dbgate-merged/packer/cloud-build.zip artifacts/cloud-build.zip || true
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: artifacts
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: artifacts/**
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run `packer init` for Azure
run: |
cd ../dbgate-merged/packer
packer init ./azure-ubuntu.pkr.hcl
- name: Run `packer build` for Azure
run: |
cd ../dbgate-merged/packer
packer build ./azure-ubuntu.pkr.hcl
- name: Run `packer init` for AWS
run: |
cd ../dbgate-merged/packer
packer init ./aws-ubuntu.pkr.hcl
env:
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}}
- name: Run `packer build` for AWS
run: |
cd ../dbgate-merged/packer
packer build ./aws-ubuntu.pkr.hcl
env:
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}}
- name: Delete old Azure VMs
run: |
cd ../dbgate-merged/packer
chmod +x delete-old-azure-images.sh
./delete-old-azure-images.sh
env:
AZURE_CLIENT_ID: ${{secrets.AZURE_CLIENT_ID}}
AZURE_CLIENT_SECRET: ${{secrets.AZURE_CLIENT_SECRET}}
AZURE_TENANT_ID: ${{secrets.AZURE_TENANT_ID}}
AZURE_SUBSCRIPTION_ID: ${{secrets.AZURE_SUBSCRIPTION_ID}}
- name: Delete old AMIs (AWS)
run: |
cd ../dbgate-merged/packer
chmod +x delete-old-amis.sh
./delete-old-amis.sh
env:
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}}
+108
View File
@@ -0,0 +1,108 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Docker image PREMIUM
'on':
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
steps:
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: dbgate/dbgate-premium
flavor: |
latest=false
tags: |
type=raw,value=beta,enable=${{ contains(github.ref_name, '-docker.') || contains(github.ref_name, '-beta.') }}
type=match,pattern=\d+.\d+.\d+,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
type=raw,value=latest,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: adjustPackageJson
run: |
cd ..
cd dbgate-merged
node adjustPackageJson --premium
- name: yarn install
run: |
cd ..
cd dbgate-merged
# yarn --version
# yarn config set network-timeout 300000
yarn install
- name: setCurrentVersion
run: |
cd ..
cd dbgate-merged
yarn setCurrentVersion
- name: printSecrets
run: |
cd ..
cd dbgate-merged
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: Prepare docker image
run: |
cd ..
cd dbgate-merged
yarn run prepare:docker
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
context: ../dbgate-merged/docker
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
+27 -21
View File
@@ -1,21 +1,19 @@
name: Docker image
on:
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Docker image Community
'on':
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-docker.[0-9]+'
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
os:
- ubuntu-22.04
steps:
- name: Context
env:
@@ -24,13 +22,11 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
dbgate/dbgate
images: dbgate/dbgate
flavor: |
latest=false
tags: |
@@ -38,7 +34,6 @@ jobs:
type=match,pattern=\d+.\d+.\d+,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
type=raw,value=latest,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
- name: Docker alpine meta
id: alpmeta
uses: docker/metadata-action@v4
@@ -52,23 +47,36 @@ jobs:
type=match,pattern=\d+.\d+.\d+,suffix=-alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
type=raw,value=alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
- name: Use Node.js 18.x
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 18.x
node-version: 22.x
- name: adjustPackageJson
run: |
node adjustPackageJson --community
- name: yarn install
run: |
# yarn --version
# yarn config set network-timeout 300000
yarn install
- name: setCurrentVersion
run: |
yarn setCurrentVersion
- name: printSecrets
run: |
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: Prepare docker image
run: |
yarn run prepare:docker
yarn run prepare:docker
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
@@ -76,7 +84,6 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v3
with:
@@ -84,7 +91,6 @@ jobs:
context: ./docker
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Build and push alpine
uses: docker/build-push-action@v3
with:
+100
View File
@@ -0,0 +1,100 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: NPM packages PREMIUM
'on':
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
steps:
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: adjustNpmPackageJsonPremium
run: |
cd ..
cd dbgate-merged
node adjustNpmPackageJsonPremium
- name: Configure NPM token
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
cd ..
cd dbgate-merged
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
- name: Remove dbmodel - should be not published
run: |
cd ..
cd dbgate-merged
rm -rf packages/dbmodel
- name: yarn install
run: |
cd ..
cd dbgate-merged
yarn install
- name: setCurrentVersion
run: |
cd ..
cd dbgate-merged
yarn setCurrentVersion
- name: printSecrets
run: |
cd ..
cd dbgate-merged
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: Publish dbgate-api-premium
run: |
cd ..
cd dbgate-merged/packages/api
npm publish
- name: Publish dbgate-web-premium
run: |
cd ..
cd dbgate-merged/packages/web
npm publish
- name: Publish dbgate-serve-premium
run: |
cd ..
cd dbgate-merged/packages/serve
npm publish
- name: Publish dbgate-plugin-cosmosdb
run: |
cd ..
cd dbgate-merged/plugins/dbgate-plugin-cosmosdb
npm publish
+25 -42
View File
@@ -1,27 +1,19 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: NPM packages
# on: [push]
on:
'on':
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
# on:
# push:
# branches:
# - production
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
os:
- ubuntu-22.04
steps:
- name: Context
env:
@@ -34,31 +26,30 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Configure NPM token
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
- name: yarn install
run: |
yarn install
- name: setCurrentVersion
run: |
yarn setCurrentVersion
- name: printSecrets
run: |
yarn printSecrets
env:
GIST_UPLOAD_SECRET: ${{secrets.GIST_UPLOAD_SECRET}}
- name: Publish types
working-directory: packages/types
run: |
npm publish
- name: Publish tools
working-directory: packages/tools
run: |
npm publish
- name: Publish sqltree
working-directory: packages/sqltree
run: |
@@ -68,83 +59,75 @@ jobs:
working-directory: packages/api
run: |
npm publish
- name: Publish datalib
working-directory: packages/datalib
run: |
npm publish
- name: Publish filterparser
working-directory: packages/filterparser
run: |
npm publish
- name: Publish web
working-directory: packages/web
run: |
npm publish
- name: Publish dbgate (obsolete)
working-directory: packages/dbgate
run: |
npm publish
- name: Publish dbgate-serve
working-directory: packages/serve
run: |
npm publish
- name: Publish dbmodel
working-directory: packages/dbmodel
run: |
npm publish
- name: Publish dbgate-plugin-csv
working-directory: plugins/dbgate-plugin-csv
run: |
npm publish
- name: Publish dbgate-plugin-xml
working-directory: plugins/dbgate-plugin-xml
run: |
npm publish
- name: Publish dbgate-plugin-excel
working-directory: plugins/dbgate-plugin-excel
run: |
npm publish
- name: Publish dbgate-plugin-mssql
working-directory: plugins/dbgate-plugin-mssql
run: |
npm publish
- name: Publish dbgate-plugin-mysql
working-directory: plugins/dbgate-plugin-mysql
run: |
npm publish
- name: Publish dbgate-plugin-mongo
working-directory: plugins/dbgate-plugin-mongo
run: |
npm publish
- name: Publish dbgate-plugin-postgres
working-directory: plugins/dbgate-plugin-postgres
run: |
npm publish
- name: Publish dbgate-plugin-sqlite
working-directory: plugins/dbgate-plugin-sqlite
run: |
npm publish
- name: Publish dbgate-plugin-redis
working-directory: plugins/dbgate-plugin-redis
run: |
npm publish
- name: Publish dbgate-plugin-oracle
working-directory: plugins/dbgate-plugin-oracle
run: |
npm publish
- name: Publish dbgate-plugin-clickhouse
working-directory: plugins/dbgate-plugin-clickhouse
run: |
npm publish
- name: Publish dbgate-plugin-dbf
working-directory: plugins/dbgate-plugin-dbf
run: |
npm publish
- name: Publish dbgate-plugin-cassandra
working-directory: plugins/dbgate-plugin-cassandra
run: |
npm publish
@@ -0,0 +1,46 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Build test containers
'on':
push:
branches:
- master
- develop
- feature/**
- hotfix/**
paths:
- e2e-tests/containers/**
jobs:
build-docker-ssh:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Build mysql-ssh-login image
run: |
docker build -t dbgate/mysql-ssh-login:latest e2e-tests/containers/mysql-ssh-login
- name: Build mysql-ssh-keyfile image
run: |
docker build -t dbgate/mysql-ssh-keyfile:latest e2e-tests/containers/mysql-ssh-keyfile
- name: Build dex image
run: |
docker build -t dbgate/dex:latest e2e-tests/containers/dex
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push mysql-ssh-login to GHCR
run: |
docker tag dbgate/mysql-ssh-login:latest ghcr.io/dbgate/mysql-ssh-login:latest
docker push ghcr.io/dbgate/mysql-ssh-login:latest
- name: Push mysql-ssh-keyfile to GHCR
run: |
docker tag dbgate/mysql-ssh-keyfile:latest ghcr.io/dbgate/mysql-ssh-keyfile:latest
docker push ghcr.io/dbgate/mysql-ssh-keyfile:latest
- name: Push dex to GHCR
run: |
docker tag dbgate/dex:latest ghcr.io/dbgate/dex:latest
docker push ghcr.io/dbgate/dex:latest
+36
View File
@@ -0,0 +1,36 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Diflow merge
'on':
push:
branches:
- master
jobs:
merge:
runs-on: ubuntu-latest
steps:
- name: Use Node.js 22.x
uses: actions/setup-node@v1
with:
node-version: 22.x
- name: Checkout dbgate/diflow
uses: actions/checkout@v2
with:
repository: dbgate/diflow
path: diflow
- name: Diflow install
run: |
cd diflow
npm install
npm run build
- name: Git config
run: |
git config --global user.email "info@dbgate.io"
git config --global user.name "Diflow"
- name: Diflow run
run: |
cd diflow
node dist/diflow.js sync -r https://DIFLOW_GIT_SECRET@github.com/dbgate/dbgate-diflow-config.git -b master
env:
DIFLOW_GIT_SECRET: ${{ secrets.DIFLOW_GIT_SECRET }}
+122
View File
@@ -0,0 +1,122 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Cypress tests with screenshots PREMIUM
'on':
push:
branches:
- master
- develop
- feature/**
- hotfix/**
jobs:
e2e-tests:
runs-on: ubuntu-latest
steps:
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Checkout dbgate/dbgate-pro
uses: actions/checkout@v2
with:
repository: dbgate/dbgate-pro
token: ${{ secrets.GH_TOKEN }}
path: dbgate-pro
ref: 4ae9129958c3f2f09cb75ec338b52fcb95f12358
- name: Merge dbgate/dbgate-pro
run: |
mkdir ../dbgate-pro
mv dbgate-pro/* ../dbgate-pro/
cd ..
mkdir dbgate-merged
cd dbgate-pro
cd sync
yarn
node sync.js --nowatch
cd ..
- name: yarn install
run: |
cd ../dbgate-merged
yarn install
- name: Build packer dist for cypress
run: |
cd ../dbgate-merged
yarn prepare:packer
- name: yarn install cypress
run: |
cd ../dbgate-merged
cd e2e-tests
yarn install
- name: Run Cypress tests
run: |
cd ../dbgate-merged
cd e2e-tests
yarn test:ci
- name: ls -R
run: |
cd ../dbgate-merged
ls -R
- name: Copy screenshots
run: |
mkdir screenshots
cp ../dbgate-merged/e2e-tests/screenshots/*.png screenshots/
- name: Upload E2E screenshots
uses: actions/upload-artifact@v4
with:
name: screenshots
path: screenshots
services:
postgres-cypress:
image: postgres
options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5'
env:
POSTGRES_PASSWORD: Pwd2020Db
ports:
- '16000:5432'
mysql-cypress:
image: mysql:8.0.18
ports:
- '16004:3306'
env:
MYSQL_ROOT_PASSWORD: Pwd2020Db
mysql-ssh-login:
image: ghcr.io/dbgate/mysql-ssh-login:latest
ports:
- '16012:22'
mysql-ssh-keyfile:
image: ghcr.io/dbgate/mysql-ssh-keyfile:latest
ports:
- '16008:22'
dex:
image: ghcr.io/dbgate/dex:latest
ports:
- '16009:5556'
mongo:
image: mongo:4.0.12
env:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: Pwd2020Db
ports:
- '16010:27017'
redis:
image: redis
ports:
- '16011:6379'
mssql:
image: mcr.microsoft.com/mssql/server
ports:
- '16014:1433'
env:
ACCEPT_EULA: 'Y'
SA_PASSWORD: Pwd2020Db
MSSQL_PID: Express
oracle:
image: gvenzl/oracle-xe:21-slim
env:
ORACLE_PASSWORD: Pwd2020Db
ports:
- '16013:1521'
+48
View File
@@ -0,0 +1,48 @@
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Update Workflows
'on':
push:
branches:
- master
paths:
- workflow-templates/**
jobs:
update-workflows:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
token: ${{ secrets.WORKFLOW_CHANGE_ACCESS_TOKEN }}
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
- name: Install dependencies
run: |
rm package.json
rm yarn.lock
yarn add -W js-yaml lodash
- name: Run workflow generation
run: |
node common/processWorkflows.js
- name: Git config
run: |
git config --global user.email "info@dbgate.io"
git config --global user.name "CI workflows"
- name: Commit changes
run: |
# Only commit if there are changes
if [[ -n "$(git status --porcelain)" ]]; then
git add .github/workflows
git commit -m "chore: auto-update github workflows"
else
echo "No changes to commit"
fi
- name: Push changes
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.WORKFLOW_CHANGE_ACCESS_TOKEN }}
branch: master
+40 -27
View File
@@ -1,21 +1,23 @@
name: Run tests
on:
# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Integration and unit tests
'on':
push:
branches:
- master
- develop
- feature/**
- hotfix/**
jobs:
test-runner:
all-tests:
runs-on: ubuntu-latest
container: node:18
steps:
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: yarn install
@@ -25,7 +27,6 @@ jobs:
run: |
cd integration-tests
yarn test:ci
# yarn wait:ci
- name: Filter parser tests
if: always()
run: |
@@ -54,29 +55,41 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }}
result-file: packages/datalib/result.json
action-name: Datalib (perspectives) test results
services:
postgres:
postgres-integr:
image: postgres
env:
POSTGRES_PASSWORD: Pwd2020Db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
mysql:
options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5'
ports:
- '15000:5432'
mysql-integr:
image: mysql:8.0.18
env:
MYSQL_ROOT_PASSWORD: Pwd2020Db
mssql:
ports:
- '15001:3306'
mssql-integr:
image: mcr.microsoft.com/mssql/server
env:
ACCEPT_EULA: Y
ACCEPT_EULA: 'Y'
SA_PASSWORD: Pwd2020Db
MSSQL_PID: Express
# cockroachdb:
# image: cockroachdb/cockroach
ports:
- '15002:1433'
clickhouse-integr:
image: bitnami/clickhouse:24.8.4
env:
CLICKHOUSE_ADMIN_PASSWORD: Pwd2020Db
ports:
- '15005:8123'
oracle-integr:
image: gvenzl/oracle-xe:21-slim
env:
ORACLE_PASSWORD: Pwd2020Db
ports:
- '15006:1521'
cassandradb:
image: cassandra:5.0.2
ports:
- '15942:9042'
+4 -3
View File
@@ -28,7 +28,8 @@ docker/plugins
npm-debug.log*
yarn-debug.log*
yarn-error.log*
app/src/nativeModulesContent.js
packages/api/src/nativeModulesContent.js
packages/api/src/packagedPluginsContent.js
.VSCodeCounter
.VSCodeCounter
packages/web/public/*.html
e2e-tests/screenshots/*.png
+1
View File
@@ -0,0 +1 @@
v21.7.3
+233 -1
View File
@@ -8,6 +8,238 @@ Builds:
- linux - application for linux
- win - application for Windows
### 6.2.0
- ADDED: Query AI Assistant (Premium)
- ADDED: Cassandra database support
- ADDED: XML cell data view
- FIXED: Filtering by value in Oracle #1009
- FIXED: Operand type clash: uniqueidentifier is incompatible with int #565
- FIXED: UX in administration
- FIXED: Error reporting of broken connections (sometimes it caused infinite loading of data grid)
- ADDED: Azure managed identity support (Team Premium)
- ADDED: Expanded JSON cell view
- CHANGED: Open real executed query, when datagrid shows loading error
### 6.1.6
- FIXED: Hotfix build process for premium edition
### 6.1.5
- FIXED: Serious security hotfix (for Docker and NPM, when using LOGIN and PASSWORD environment variables or LOGIN_PASSWORD_xxx)
- no changes for desktop app and for Team premium edition, when using storage DB
### 6.1.4
- CHANGED: Show Data/Structure button in one place #1015
- ADDED: Data view coloring (every second row) #1014
- ADDED: Pin icon for tab in preview mode (#1013)
- FIXED: Pin icon misplaced #1007
- ADDED: Set client name when connecting to redis #1004
- ADDED: Redis loading keys optimalization #1002
- ADDED: Browse redis keys with preview with keyboard
- FIXED: Cannot expand tables and views returned from search #1000
- ADDED: Expand all/Collapse all/Expand document commands in MongoDB JSON view #976
- ADDED: Configurable page size for MongoDB collection #976
- ADDED: Redis - SSL connection
- ADDED: Redis JSON format for String values #852
### 6.1.3
- FIXED: Fulltext search now shows correctly columns and SQL code lines
- ADDED: Configuration of SSH tunnel local host (IPv4 vs IPv6). Should fix majority of SSH tunnel problems
- FIXED: Handled SSH tunnel connection error, now it shows error instead of connecting forever
- ADDED: Support of triggers (SQLite)
- ADDED: Create, drop trigger
- ADDED: Support for MySQL scheduled events
- FIXED: Cannot connect to DB using askUser/askPassword mode #995
- FIXED: Filtering in Oracle #992
- ADDED: Open table in raw mode #991, #962
- ADDED: Introduced E2E Cypress tests, test refactor
### 6.1.1
- ADDED: Trigger support (SQL Server, PostgreSQL, MySQL, Oracle)
- FIXED: PostgreSQL and Oracle export #970
- FIXED: Cursor Becomes Stuck When Escaping "Case" #954
- CHANGED: Defualt search criteria for tables are names only
- FIXED: Search in packed list
### 6.1.0
- ADDED: Fulltext search in DB model and connections, highlight searched names
- ADDED: Tab preview mode configuration #963
- CHANGED: Single-click to open server connection/database + ability to configure this #959
- ADDED: Option to align numbers to right in data grid #957
- FIXED: Cursor Becomes Stuck When Escaping "Case" #954
- ADDED: Postgres GEOGRAPHY types are shown on map, event when executing query #948
- FIXED: Error displaying CLOB and NCLOB in Oracle
- FIXED: Analysing of foreign keys in Postgres and MS SQL, when the same FKS are used across different schemas
- ADDED: Support of views, procedures, functions to Oracle. Added integration tests for Oracle
- ADDED: Display "No rows" message, quick add new row
- ADDED: Choose default database from list
- ADDED: Default database is automatically selected on connect
- ADDED: Apple-Silicon-only build for Mac #949
- ADDED: Display comment into tables and column list #755
### 6.0.0
- ADDED: Order or filter the indexes for huge tables #922
- ADDED: Empty string filters
- CHANGED: (Premium) Workflow for new installation (used in Docker and AWS distribution)
- ADDED: Show stored procedure and function parameters (MySQL, PostgreSQL, SQL Server, MariaDB) #348
- FIXED: Selected database has changed when closing database grouped tab #983
- ADDED: Add line break option to editor #823
- ADDED: Order or filter the indexes for huge tables #922
- ADDED: Preview mode for the top bar tab like vscode #767
- ADDED: Keyboard navigatioon between connections, databases and tables
- FIXED: Fixed some issues in connection search
- FIXED: Schema selection in Export does not provide all schemas #924
- CHANGED: Standardized Window menu in MacOS app
- FIXED: Typecast ::date is treated as a parameter #925
- FIXED: App crashes when trying to 'Open Structure' in a readonly connection #926
- FIXED: Selected database has changed when closing database grouped tab #938
- CHANGED: (Premium) Query designer and Query perspective designer moved to Premium editioin
- CHANGED: (Premium) Compare database tool - many improvements, moved to Premium edition
- ADDED: (Premium) Export DB model - exporting model to YAML folder, JSON or SQL folder
- CHANGED: Model deployer - many improvements, support of rename missing objects
- ADDED: (Premium) Premium NPM distribution
- CHANGED: (Premium) Amazon Redshift driver moved to Premium edition
- ADDED: Generated API documentation https://dbgate.org/docs/apidoc.html
- ADDED: NPM distribution now supports all dbgate database connectors, many improvements NPM packages
- CHANGED: Optimalized size of NPM plugins (eg. dbgate-plugin-mssql from 1.34 MB to 71 kB)
- CHANGED: Unsaved connections are now shown in "Recent and unsaved" folder after disconnect
- FIXED: Correctly show focused control, as defined by UX standards
- ADDED: Data duplicator - weak references
- ADDED: View JSON detail of log messages from export/import jobs and query executions
- ADDED: Rename procedure/function context menu
- ADDED: Show SQL quick view
### 5.5.6
- FIXED: DbGate process consumes 100% after UI closed - Mac, Linux (#917, #915)
- FIXED: Correctly closing connection behind SSH tunnel (#920)
- FIXED: Updating MongoDB documents on MongoDB 4 (#916)
- FIXED: (Premium) DbGate container correctly waits for underlying storage database, if database container is started after dbgate container is started
- FIXED: (Premium) Better handling of connection storage errors
### 5.5.5
- ADDED: AWS IAM authentication for MySQL, MariaDB, PostgreSQL (Premium)
- FIXED: Datitme filtering #912
- FIXED: Load redis keys
- ADDED: Query parameters #913
- FIXED: Data grid with hidden columns #911
- ADDED: Added buttons for one-click authentification methods (Anonymous, OAuth) (Team Premium)
- ADDED: Link for switching Admin/user login (Team Premium)
- FIXED: Save connection params in administration for MS SQL and Postgres storages (Team Premium)
### 5.5.4
- FIXED: correct handling when use LOGIN and PASSWORD env variables #903
- FIXED: fixed problems in dbmodel commandline tool
- ADDED: dbmodel - allow connection defined in environment variables
- FIXED: Load postgres schema on Azure #906
- FIXED: Oauth2 in combination with Google doesn't log payload #727
- CHANGED: Improved error reporting for unhandler errors
- CHANGED: Don't restart docker container in case of unhandler error
- FIXED: Crash when displaying specific data values from MongoDB #908
- ADDED: (Premium) Show purchase button after trial license is expired
### 5.5.3
- FIXED: Separate schema mode #894 - for databases with many schemas
- FIXED: Sort by UUID column in POstgreSQL #895
- ADDED: Load pg_dump outputs #893
- ADDED: Improved column mapping in import/export #330
- FIXED: Fixed some errors in create-table workflow
- CHANGED: Show single schema by default only if all objects are from default schema
- FIXED: MS Entra authentication for Azure SQL
### 5.5.2
- FIXED: MySQL, PostgreSQL readonly conections #900
### 5.5.1
- ADDED: Clickhouse support (#532)
- ADDED: MySQL - specify table engine, show table engine in table list
- FIXED: Hidden primary key name in PK editor for DB engines with anonymous PK (MySQL)
- CHANGED: Import/export dialog is now tacub instead of modal
- ADDED: Saving import/export job
- REMOVED: Ability to reopen export/import wizard from generated script. This was a bit hack, now you could save import/export job instead
- ADDED: Autodetect CSV delimited
- FIXED: Import CSV files with spaces around quotes
- ADDED: JSON file import
- ADDED: JSON export can export objects with ID field used as object key
- ADDED: JSON and JSON lines imports supports importing from web URL
- FIXED: Editing imported URL in job editor
- ADDED: Quick export from table data grid (#892)
- CHANGED: Create table workflow is reworked, you can specify schema and table name in table editor
- FIXED: After saving new table, table editor is reset to empty state
- ADDED: (PostgreSQL, SQL Server) - ability to filter objects by schema
- ADDED: (PostgreSQL, SQL Server) - Use separate schemas option - for databases with lot of schemas, only selected schema is loaded
- FIXED: Internal refactor of drivers, client objects are not more messed up with auxiliary fields
- ADDED: Copy connection error to clipboard after clicking on error icon
- FIXED: (MySQL) Fixed importing SQL dump exported from mysqldump (#702)
- FIXED: (PostgreSQL) Fixed filtering JSONB fields (#889)
- FIXED: OIDC authentication not working anymore (#891)
- ADDED: Added tests for import from CSV and JSON
- FIXED: multiple shortcuts handling #898
- ADDED: (Premium) MS Entra authentization for Azure SQL databases
### 5.4.4
- CHANGED: Improved autoupdate, notification is now in app
- CHANGED: Default behaviour of autoupdate, new version is downloaded after click of "Download" button
- ADDED: Ability to configure autoupdate (check only, check+download, don't check)
- ADDED: Option to run check for new version manually
- FIXED: Fixed autoupgrade channel for premium edition
- FIXED: Fixes following issues: #886, #865, #782, #375
### 5.4.2
- FIXED: DbGate now works correctly with Oracle 10g
- FIXED: Fixed update channel for premium edition
### 5.4.1
- FIXED: Broken older plugins #881
- ADDED: Premium edition - "Start trial" button
### 5.4.0
- ADDED: Support for CosmosDB (Premium only)
- ADDED: Administration UI (Premium only)
- ADDED: New application icon
- ADDED: MongoDB type support in data editing
- ADDED: MongoDB - posibility to remove field
- ADDED: Oracle - posibility to connect via SID
- FIXED: Many improvements in MongoDB filtering
- FIXED: Switch to form and back to table rows missing #343
- ADDED: Posibility to deactivate MongoDB Profiler #745
- ADDED: Ability to use Oracle thick driver - neccessary for connecting older Oracle servers #843
- FIXED: Connection permissions configuration is broken #860
- ADDED: ssh key file authentication option missing #876
- ADDED: Ability to reset layout #878
- FIXED: Script with escaped backslash causes erro #880
### 5.3.4
- FIXED: On blank system does not start (window does not appear) #862
- FIXED: Missing Execute, Export bar #861
### 5.3.3
- FIXED: The application Window is not visible when openning after changing monitor configuration. #856
- FIXED: Multi column filter is broken for Postgresql #855
- ADDED: Do not display internal timescaledb objects in postgres databases #839
- FIXED: When in splitview mode and Clicking "Refresh" button on the right side, will refresh the left side, and not the right side #810
- FIXED: Cannot filter by uuid field in psql #538
### 5.3.1
- FIXED: Column sorting on query tab not working #819
- FIXED: Postgres Connection stays in "Loading database structure" until reloading the page #826
- FIXED: Cannot read properties of undefined (reading 'length') on Tables #824
- FIXED: Redshift doesn't show tables when connected #816
### 5.3.0
- CHANGED: New Oracle driver, much better Oracle support. Works now also in docker distribution
- FIXED: Connection to oracle with service name #809
- ADDED: Connect to redis using a custom username #807
- FIXED: Unable to open SQL files #797
- FIXED: MongoDB query without columns #811
- ADDED: Switch connection for opened file #814
### 5.2.9
- FIXED: PostgresSQL doesn't show tables when connected #793 #805
- FIXED: MongoDB write operations fail #798 #802
- FIXED: Elecrron app logging losed most of log messages
- FIXED: Connection error with SSH tunnel
- ADDED: option to disable autoupgrades (with --disable-auto-upgrade)
- ADDED: Send error context to github gist
### 5.2.8
- FIXED: file menu save and save as not working
- FIXED: query editor on import/export screen overlaps with selector
@@ -86,7 +318,7 @@ Builds:
- FIXED: Creating SQLite autoincrement column
- FIXED: Better error reporting from exports/import/dulicator
- CHANGED: Optimalizede OracleDB analysing algorithm
- ADDED: Mutli column filter for perspectives
- ADDED: Multi column filter for perspectives
- FIXED: Fixed some scenarios using tables from different DBs
- FIXED: Sessions with long-running queries are not killed
+670 -17
View File
@@ -1,21 +1,674 @@
MIT License
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (c) 2021 Jan Prochazka
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Preamble
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
@@ -1,3 +1,7 @@
This project is licensed under the GPLv3 License. See the LICENSE file for full text of the GPLv3 license.
The original project was licensed under the MIT License, and the following notice applies to the original code:
MIT License
Copyright (c) 2021 Jan Prochazka
@@ -18,4 +22,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
+17 -10
View File
@@ -12,23 +12,28 @@ DbGate is cross-platform database manager.
It's designed to be simple to use and effective, when working with more databases simultaneously.
But there are also many advanced features like schema compare, visual query designer, chart visualisation or batch export and import.
DbGate is licensed under MIT license and is completely free.
DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
* Try it online - [demo.dbgate.org](https://demo.dbgate.org) - online demo application
* **Download** application for Windows, Linux or Mac from [dbgate.org](https://dbgate.org/download/)
* Run web version as [NPM package](https://www.npmjs.com/package/dbgate-serve) or as [docker image](https://hub.docker.com/r/dbgate/dbgate)
* Use nodeJs [scripting interface](https://dbgate.org/docs/scripting) ([API documentation](https://dbgate.org/docs/apidoc))
* [Recommend DbGate](https://testimonial.to/dbgate) | [Rate on G2](https://www.g2.com/products/dbgate/reviews)
## Supported databases
* MySQL
* PostgreSQL
* SQL Server
* Oracle (experimental)
* Oracle
* MongoDB
* Redis
* SQLite
* Amazon Redshift
* Amazon Redshift (Premium)
* CockroachDB
* MariaDB
* CosmosDB (Premium)
* ClickHouse
* Apache Cassandra
<!-- Learn more about DbGate features at the [DbGate website](https://dbgate.org/), or try our online [demo application](https://demo.dbgate.org) -->
@@ -49,13 +54,15 @@ DbGate is licensed under MIT license and is completely free.
<!-- ![Screenshot](https://raw.githubusercontent.com/dbgate/dbgate/master/screenshot.png) -->
## Features
* Browse table data with many filtering options, Excel-like filters, multi-value filters
* Table data editing, with SQL change script preview
* Edit table schema, indexes, primary and foreign keys
* Compare and synchronize database structure
* ER diagram
* Light and dark theme
* Master/detail views, foreign key lookups
* Query designer
* Light and dark theme, next themes available as plugins from github community
* Huge support for work with related data - master/detail views, foreign key lookups, expanding columns from related tables in flat data view
* Query designer - visual SQL query builder without writing SQL code. Complex conditions like WHERE NOT EXISTS.
* Query perspectives innovative nested table view over complex relational data, something like query designer on MongoDB databases
* Form view for comfortable work with tables with many columns
* JSON view on MongoDB collections
* Explore tables, views, procedures, functions, MongoDB collections
@@ -67,13 +74,13 @@ DbGate is licensed under MIT license and is completely free.
* Mongo JavaScript editor, execute Mongo script (with NodeJs syntax)
* Redis tree view, generate script from keys, run Redis script
* Runs as application for Windows, Linux and Mac. Or in Docker container on server and in web Browser on client.
* Import, export from/to CSV, Excel, JSON, NDJSON, XML
* Free table editor - quick table data editing (cleanup data after import/before export, prototype tables etc.)
* Import, export from/to CSV, Excel, JSON, NDJSON, XML, DBF
* Archives - backup your data in NDJSON files on local filesystem (or on DbGate server, when using web application)
* NDJSON data viewer and editor - browse NDJSON data, edit data and structure directly on NDJSON files. Works also for big NDSON files
* Charts, export chart to HTML page
* Show GEO data on map, export map to HTML page
* For detailed info, how to run DbGate in docker container, visit [docker hub](https://hub.docker.com/r/dbgate/dbgate)
* Extensible plugin architecture
* Perspectives - nested table view over complex relational data, query designer on MongoDB databases
## How to contribute
Any contributions are welcome. If you want to contribute without coding, consider following:
@@ -83,7 +90,7 @@ Any contributions are welcome. If you want to contribute without coding, conside
* Create issue, if you find problem in app, or you have idea to new feature. If issue already exists, you could leave comment on it, to prioritise most wanted issues
* Create some tutorial video on [youtube](https://www.youtube.com/playlist?list=PLCo7KjCVXhr0RfUSjM9wJMsp_ShL1q61A)
* Become a backer on [GitHub sponsors](https://github.com/sponsors/dbgate) or [Open collective](https://opencollective.com/dbgate)
* Where a small coding is acceptable for you, you could [create plugin](https://dbgate.org/docs/plugin-development.html). Plugins for new themes can be created actually without JS coding
* Where a small coding is acceptable for you, you could [create plugin](https://dbgate.org/docs/plugin-development). Plugins for new themes can be created actually without JS coding
Thank you!
+62 -4
View File
@@ -1,15 +1,73 @@
const fs = require('fs');
const path = require('path');
const volatilePackages = require('./common/volatilePackages');
function adjustFile(file) {
function adjustFile(file, isApp = false) {
const json = JSON.parse(fs.readFileSync(file, { encoding: 'utf-8' }));
function processPackageFile(packageFile) {
const pluginJson = JSON.parse(fs.readFileSync(packageFile, { encoding: 'utf-8' }));
for (const depkey of ['dependencies', 'optionalDependencies']) {
for (const dependency of Object.keys(pluginJson[depkey] || {})) {
if (!volatilePackages.includes(dependency)) {
// add only voletile packages
continue;
}
if (!json[depkey]) {
json[depkey] = {};
}
if (json[depkey][dependency]) {
if (json[depkey][dependency] != pluginJson[depkey][dependency]) {
console.log(`Dependency ${dependency} in ${packageName} is different from ${file}`);
}
continue;
}
json[depkey][dependency] = pluginJson[depkey][dependency];
}
}
}
for (const packageName of fs.readdirSync('plugins')) {
if (!packageName.startsWith('dbgate-plugin-')) continue;
processPackageFile(path.join('plugins', packageName, 'package.json'));
}
if (isApp) {
// add volatile dependencies from api to app
processPackageFile(path.join('packages', 'api', 'package.json'));
}
if (process.platform != 'win32') {
delete json.optionalDependencies.msnodesqlv8;
}
if (process.arch == 'arm64') {
delete json.optionalDependencies.oracledb;
if (process.argv.includes('--community')) {
delete json.optionalDependencies['mongodb-client-encryption'];
}
if (isApp && process.argv.includes('--premium')) {
json.build.win.target = [
{
target: 'nsis',
arch: ['x64'],
},
];
json.build.linux.target = [
{
target: 'AppImage',
arch: ['x64'],
},
];
json.name = 'dbgate-premium';
json.build.artifactName = 'dbgate-premium-${version}-${os}_${arch}.${ext}';
json.build.appId = 'org.dbgate.premium';
json.build.productName = 'DbGate Premium';
}
fs.writeFileSync(file, JSON.stringify(json, null, 2), 'utf-8');
}
adjustFile('packages/api/package.json');
adjustFile('app/package.json');
adjustFile('app/package.json', true);
fs.writeFileSync('common/useBundleExternals.js', "module.exports = 'true';", 'utf-8');
+670 -17
View File
@@ -1,21 +1,674 @@
MIT License
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (c) 2021 Jan Prochazka
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Preamble
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
@@ -1,3 +1,7 @@
This project is licensed under the GPLv3 License. See the LICENSE file for full text of the GPLv3 license.
The original project was licensed under the MIT License, and the following notice applies to the original code:
MIT License
Copyright (c) 2021 Jan Prochazka
@@ -18,4 +22,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 202 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 68 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 64 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

+26 -19
View File
@@ -1,12 +1,13 @@
{
"name": "dbgate",
"version": "5.0.0-alpha.1",
"version": "6.0.0-alpha.1",
"private": true,
"author": "Jan Prochazka <jenasoft.database@gmail.com>",
"description": "Opensource database administration tool",
"dependencies": {
"electron-log": "^4.4.1",
"electron-updater": "^4.6.1",
"electron-updater": "^6.3.4",
"jsonwebtoken": "^9.0.2",
"lodash.clonedeepwith": "^4.5.0",
"patch-package": "^6.4.7"
},
@@ -18,7 +19,6 @@
"artifactName": "dbgate-${version}-${os}_${arch}.${ext}",
"appId": "org.dbgate",
"productName": "DbGate",
"afterSign": "electron-builder-notarize",
"asarUnpack": "**/*.node",
"mac": {
"category": "database",
@@ -27,15 +27,21 @@
"entitlements": "entitlements.mac.plist",
"entitlementsInherit": "entitlements.mac.plist",
"publish": [
"github"
{
"provider": "github",
"owner": "dbgate",
"repo": "dbgate"
}
],
"target": {
"target": "default",
"arch": [
"universal",
"x64"
"x64",
"arm64"
]
}
},
"notarize": true
},
"linux": {
"target": [
@@ -45,7 +51,6 @@
"target": "AppImage",
"arch": [
"x64",
"armv7l",
"arm64"
]
},
@@ -55,7 +60,11 @@
"category": "Development",
"synopsis": "Database manager for SQL Server, MySQL, PostgreSQL, MongoDB and SQLite",
"publish": [
"github"
{
"provider": "github",
"owner": "dbgate",
"repo": "dbgate"
}
]
},
"appImage": {
@@ -90,14 +99,18 @@
],
"icon": "icon.ico",
"publish": [
"github"
],
"rfc3161TimeStampServer": "http://sha256timestamp.ws.symantec.com/sha256/timestamp"
{
"provider": "github",
"owner": "dbgate",
"repo": "dbgate"
}
]
},
"files": [
"packages",
"src",
"icon.png"
"icon.png",
"!node_modules/cpu-features/build/**"
]
},
"homepage": "./",
@@ -116,12 +129,6 @@
"copyfiles": "^2.2.0",
"cross-env": "^6.0.3",
"electron": "30.0.2",
"electron-builder": "23.1.0",
"electron-builder-notarize": "^1.5.2"
},
"optionalDependencies": {
"better-sqlite3": "9.6.0",
"msnodesqlv8": "^4.2.1",
"oracledb": "^5.5.0"
"electron-builder": "25.1.8"
}
}
+150 -35
View File
@@ -16,17 +16,20 @@ const BrowserWindow = electron.BrowserWindow;
const path = require('path');
const url = require('url');
const mainMenuDefinition = require('./mainMenuDefinition');
const { settings } = require('cluster');
let disableAutoUpgrade = false;
const { isProApp } = require('./proTools');
const updaterChannel = require('./updaterChannel');
// require('@electron/remote/main').initialize();
const configRootPath = path.join(app.getPath('userData'), 'config-root.json');
let saveConfigOnExit = true;
let initialConfig = {};
let apiLoaded = false;
let mainModule;
// let getLogger;
// let loadLogsContent;
let appUpdateStatus = '';
let settingsJson = {};
process.on('uncaughtException', function (error) {
console.error('uncaughtException', error);
@@ -50,21 +53,11 @@ const isMac = () => os.platform() == 'darwin';
try {
initialConfig = JSON.parse(fs.readFileSync(configRootPath, { encoding: 'utf-8' }));
disableAutoUpgrade = initialConfig['disableAutoUpgrade'] || false;
} catch (err) {
console.log('Error loading config-root:', err.message);
initialConfig = {};
}
if (process.argv.includes('--disable-auto-upgrade')) {
console.log('Disabling auto-upgrade');
disableAutoUpgrade = true;
}
if (process.argv.includes('--enable-auto-upgrade')) {
console.log('Enabling auto-upgrade');
disableAutoUpgrade = false;
}
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;
@@ -73,6 +66,10 @@ let runCommandOnLoad = null;
log.transports.file.level = 'debug';
autoUpdater.logger = log;
if (updaterChannel) {
autoUpdater.channel = updaterChannel;
autoUpdater.allowPrerelease = updaterChannel.includes('beta');
}
// TODO - create settings for this
// appUpdater.channel = 'beta';
@@ -111,7 +108,7 @@ function commandItem(item) {
}
function buildMenu() {
let template = _cloneDeepWith(mainMenuDefinition({ editMenu: true }), item => {
let template = _cloneDeepWith(mainMenuDefinition({ editMenu: true, isMac: isMac() }), item => {
if (item.divider) {
return { type: 'separator' };
}
@@ -173,6 +170,21 @@ ipcMain.on('quit-app', async (event, arg) => {
mainWindow.close();
}
});
ipcMain.on('reset-settings', async (event, arg) => {
try {
saveConfigOnExit = false;
fs.unlinkSync(configRootPath);
console.log('Deleted file:', configRootPath);
} catch (err) {
console.log('Error deleting config-root:', err.message);
}
if (isMac()) {
app.quit();
} else {
mainWindow.close();
}
});
ipcMain.on('set-title', async (event, arg) => {
mainWindow.setTitle(arg);
});
@@ -191,6 +203,15 @@ ipcMain.on('app-started', async (event, arg) => {
if (initialConfig['winIsMaximized']) {
mainWindow.webContents.send('setIsMaximized', true);
}
if (autoUpdater.isUpdaterActive()) {
mainWindow.webContents.send('setAppUpdaterActive');
}
if (!process.env.DEVMODE) {
if (settingsJson['app.autoUpdateMode'] != 'skip') {
autoUpdater.autoDownload = settingsJson['app.autoUpdateMode'] == 'download';
autoUpdater.checkForUpdates();
}
}
});
ipcMain.on('window-action', async (event, arg) => {
if (!mainWindow) {
@@ -264,6 +285,20 @@ ipcMain.handle('showItemInFolder', async (event, path) => {
ipcMain.handle('openExternal', async (event, url) => {
electron.shell.openExternal(url);
});
ipcMain.on('downloadUpdate', async (event, url) => {
autoUpdater.downloadUpdate();
changeAppUpdateStatus({
icon: 'icon loading',
message: `Downloading update...`,
});
});
ipcMain.on('applyUpdate', async (event, url) => {
autoUpdater.quitAndInstall(false, true);
});
ipcMain.on('check-for-updates', async (event, url) => {
autoUpdater.autoDownload = false;
autoUpdater.checkForUpdates();
});
function fillMissingSettings(value) {
const res = {
@@ -276,10 +311,32 @@ function fillMissingSettings(value) {
return res;
}
function ensureBoundsVisible(bounds) {
const area = electron.screen.getDisplayMatching(bounds).workArea;
let { x, y, width, height } = bounds;
const isWithinDisplay =
x >= area.x && x + width <= area.x + area.width && y >= area.y && y + height <= area.y + area.height;
if (!isWithinDisplay) {
width = Math.min(width, area.width);
height = Math.min(height, area.height);
if (width < 400) width = 400;
if (height < 300) height = 300;
x = area.x; // + Math.round(area.width - width / 2);
y = area.y; // + Math.round(area.height - height / 2);
}
return { x, y, width, height };
}
function createWindow() {
let settingsJson = {};
const datadir = path.join(os.homedir(), '.dbgate');
try {
const datadir = path.join(os.homedir(), '.dbgate');
settingsJson = fillMissingSettings(
JSON.parse(fs.readFileSync(path.join(datadir, 'settings.json'), { encoding: 'utf-8' }))
);
@@ -288,18 +345,21 @@ function createWindow() {
settingsJson = fillMissingSettings({});
}
const bounds = initialConfig['winBounds'];
let bounds = initialConfig['winBounds'];
if (bounds) {
bounds = ensureBoundsVisible(bounds);
}
useNativeMenu = settingsJson['app.useNativeMenu'];
mainWindow = new BrowserWindow({
width: 1200,
height: 800,
title: 'DbGate',
title: isProApp() ? 'DbGate Premium' : 'DbGate',
frame: useNativeMenu,
titleBarStyle: useNativeMenu ? undefined : 'hidden',
...bounds,
icon: os.platform() == 'win32' ? 'icon.ico' : path.resolve(__dirname, '../icon.png'),
partition: 'persist:dbgate',
partition: isProApp() ? 'persist:dbgate-premium' : 'persist:dbgate',
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
@@ -327,24 +387,27 @@ function createWindow() {
});
mainWindow.on('close', () => {
try {
fs.writeFileSync(
configRootPath,
JSON.stringify({
winBounds: mainWindow.getBounds(),
winIsMaximized: mainWindow.isMaximized(),
disableAutoUpgrade,
}),
'utf-8'
);
if (saveConfigOnExit) {
fs.writeFileSync(
configRootPath,
JSON.stringify({
winBounds: mainWindow.getBounds(),
winIsMaximized: mainWindow.isMaximized(),
}),
'utf-8'
);
}
} catch (err) {
console.log('Error saving config-root:', err.message);
}
});
// mainWindow.webContents.toggleDevTools();
mainWindow.loadURL(startUrl);
if (os.platform() == 'linux') {
mainWindow.setIcon(path.resolve(__dirname, '../icon.png'));
}
// mainWindow.webContents.toggleDevTools();
mainWindow.on('maximize', () => {
mainWindow.webContents.send('setIsMaximized', true);
@@ -353,6 +416,11 @@ function createWindow() {
mainWindow.on('unmaximize', () => {
mainWindow.webContents.send('setIsMaximized', false);
});
// app.on('browser-window-focus', () => {
// const bounds = ensureBoundsVisible(mainWindow.getBounds());
// mainWindow.setBounds(bounds);
// });
}
if (!apiLoaded) {
@@ -362,7 +430,6 @@ function createWindow() {
);
global.API_PACKAGE = apiPackage;
global.NATIVE_MODULES = path.join(__dirname, 'nativeModules');
// console.log('global.API_PACKAGE', global.API_PACKAGE);
const api = require(apiPackage);
@@ -394,13 +461,61 @@ function createWindow() {
});
}
function changeAppUpdateStatus(status) {
appUpdateStatus = status;
mainWindow.webContents.send('app-update-status', appUpdateStatus);
}
autoUpdater.on('checking-for-update', () => {
console.log('Checking for updates');
changeAppUpdateStatus({
icon: 'icon loading',
message: 'Checking for updates...',
});
});
autoUpdater.on('update-available', info => {
console.log('Update available', info);
if (autoUpdater.autoDownload) {
changeAppUpdateStatus({
icon: 'icon loading',
message: `Downloading update...`,
});
} else {
mainWindow.webContents.send('update-available', info.version);
changeAppUpdateStatus({
icon: 'icon download',
message: `Update available`,
});
}
});
autoUpdater.on('update-not-available', info => {
console.log('Update not available', info);
changeAppUpdateStatus({
icon: 'icon check',
message: `No new updates`,
});
});
autoUpdater.on('update-downloaded', info => {
console.log('Update downloaded from', info);
changeAppUpdateStatus({
icon: 'icon download',
message: `Downloaded ${info.version}`,
});
mainWindow.webContents.send('downloaded-new-version', info.version);
});
autoUpdater.on('error', error => {
changeAppUpdateStatus({
icon: 'icon error',
message: `Autoupdate error`,
});
console.error('Update error', error);
});
function onAppReady() {
if (disableAutoUpgrade) {
console.log('Auto-upgrade is disabled, run dbgate --enable-auto-upgrade to enable');
}
if (!process.env.DEVMODE && !disableAutoUpgrade) {
autoUpdater.checkForUpdatesAndNotify();
}
createWindow();
}
+23 -16
View File
@@ -1,4 +1,4 @@
module.exports = ({ editMenu }) => [
module.exports = ({ editMenu, isMac }) => [
{
label: 'File',
submenu: [
@@ -9,9 +9,9 @@ module.exports = ({ editMenu }) => [
{ command: 'new.queryDesign', hideDisabled: true },
{ command: 'new.diagram', hideDisabled: true },
{ command: 'new.perspective', hideDisabled: true },
{ command: 'new.freetable', hideDisabled: true },
{ command: 'new.shell', hideDisabled: true },
{ command: 'new.jsonl', hideDisabled: true },
{ command: 'new.modelTransform', hideDisabled: true },
{ divider: true },
{ command: 'file.open', hideDisabled: true },
{ command: 'file.openArchive', hideDisabled: true },
@@ -24,20 +24,6 @@ module.exports = ({ editMenu }) => [
{ command: 'app.disconnect', hideDisabled: true, skipInApp: true },
],
},
{
label: 'Window',
submenu: [
{ command: 'tabs.closeTab', hideDisabled: false },
{ command: 'tabs.closeAll', hideDisabled: false },
{ command: 'tabs.closeTabsWithCurrentDb', hideDisabled: false },
{ command: 'tabs.closeTabsButCurrentDb', hideDisabled: false },
{ divider: true },
{ command: 'app.zoomIn', hideDisabled: true },
{ command: 'app.zoomOut', hideDisabled: true },
{ command: 'app.zoomReset', hideDisabled: true },
],
},
editMenu
? {
label: 'Edit',
@@ -75,6 +61,15 @@ module.exports = ({ editMenu }) => [
{ divider: true },
{ command: 'theme.changeTheme', hideDisabled: true },
{ command: 'settings.show' },
{ divider: true },
{ command: 'tabs.closeTab', hideDisabled: false },
{ command: 'tabs.closeAll', hideDisabled: false },
{ command: 'tabs.closeTabsWithCurrentDb', hideDisabled: false },
{ command: 'tabs.closeTabsButCurrentDb', hideDisabled: false },
{ divider: true },
{ command: 'app.zoomIn', hideDisabled: true },
{ command: 'app.zoomOut', hideDisabled: true },
{ command: 'app.zoomReset', hideDisabled: true },
],
},
{
@@ -90,8 +85,18 @@ module.exports = ({ editMenu }) => [
{ divider: true },
{ command: 'folder.showLogs', hideDisabled: true },
{ command: 'folder.showData', hideDisabled: true },
{ command: 'new.gist', hideDisabled: true },
{ command: 'app.resetSettings', hideDisabled: true },
],
},
...(isMac
? [
{
role: 'window',
submenu: [{ role: 'minimize' }, { role: 'zoom' }, { type: 'separator' }, { role: 'front' }],
},
]
: []),
{
label: 'Help',
submenu: [
@@ -103,6 +108,8 @@ module.exports = ({ editMenu }) => [
{ command: 'settings.commands', hideDisabled: true },
{ command: 'tabs.changelog', hideDisabled: true },
{ command: 'about.show', hideDisabled: true },
{ divider: true },
{ command: 'file.checkForUpdates', hideDisabled: true },
],
},
];
-3
View File
@@ -1,3 +0,0 @@
const content = require('./nativeModulesContent');
module.exports = content;
+9
View File
@@ -0,0 +1,9 @@
// this file is generated automatically by script fillNativeModules.js, do not edit it manually
const content = {};
content['better-sqlite3'] = () => require('better-sqlite3');
content['oracledb'] = () => require('oracledb');
module.exports = content;
+12
View File
@@ -0,0 +1,12 @@
function isProApp() {
return false;
}
function checkLicense(license) {
return null;
}
module.exports = {
isProApp,
checkLicense,
};
+1
View File
@@ -0,0 +1 @@
module.exports = null;
+933 -1037
View File
File diff suppressed because it is too large Load Diff
+19
View File
@@ -0,0 +1,19 @@
const useBundleExternals = require('./useBundleExternals');
const getBundleExternals = require('./getBundleExternals');
function buildExternalsFromDependencies(packageJson) {
if (useBundleExternals == 'true') {
return getBundleExternals();
}
const { dependencies, optionalDependencies } = packageJson;
const externals = {};
for (let dep in dependencies || {}) {
externals[dep] = `commonjs ${dep}`;
}
for (let dep in optionalDependencies || {}) {
externals[dep] = `commonjs ${dep}`;
}
return externals;
}
module.exports = buildExternalsFromDependencies;
+33
View File
@@ -0,0 +1,33 @@
const directory = process.argv[2];
const fs = require('fs');
const volatilePackages = require('./volatilePackages');
const apiPackageJson = JSON.parse(fs.readFileSync(`packages/api/package.json`, { encoding: 'utf-8' }));
const dependencies = {};
const optionalDependencies = {};
for (const pkg of volatilePackages) {
if (pkg == 'msnodesqlv8' && process.platform != 'win32') {
continue;
}
if (apiPackageJson.dependencies[pkg]) {
dependencies[pkg] = apiPackageJson.dependencies[pkg];
}
if (apiPackageJson.optionalDependencies?.[pkg]) {
optionalDependencies[pkg] = apiPackageJson.optionalDependencies[pkg];
}
}
fs.writeFileSync(
`${directory}/package.json`,
JSON.stringify(
{
dependencies,
optionalDependencies,
},
null,
2
),
'utf-8'
);
+10
View File
@@ -0,0 +1,10 @@
const volatilePackages = require('./volatilePackages');
function getBundleExternals() {
return volatilePackages.reduce((acc, item) => {
acc[item] = `commonjs ${item}`;
return acc;
}, {});
}
module.exports = getBundleExternals;
+174
View File
@@ -0,0 +1,174 @@
const fs = require('fs');
const path = require('path');
const yaml = require('js-yaml');
const _ = require('lodash');
const indir = path.resolve(path.join(__dirname, '..', 'workflow-templates'));
const outdir = path.resolve(path.join(__dirname, '..', '.github', 'workflows'));
const includes = {};
const HEADER = `# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
`;
function readIncludes() {
for (const file of fs.readdirSync(indir)) {
const text = fs.readFileSync(path.join(indir, file), { encoding: 'utf-8' });
const json = yaml.load(text);
if (json._module) {
for (const key in json) {
if (key === '_module') {
continue;
}
includes[key] = json[key];
}
}
}
}
let modified = false;
function conditionMatch(condition, args) {
if (_.isString(condition)) {
return args.defs.includes(condition);
}
return false;
}
function processJsonStep(json, args) {
return _.cloneDeepWith(json, value => {
if (_.isArray(value)) {
const res = [];
let arrayModified = false;
for (const item of value) {
if (item._if) {
modified = true;
arrayModified = true;
if (conditionMatch(item._if, args)) {
res.push(_.omit(item, ['_if']));
}
} else if (item._replace || item._include) {
const replaceWith = item._replace ? args.replace?.[item._replace] : includes[item._include];
if (replaceWith) {
modified = true;
arrayModified = true;
if (_.isArray(replaceWith)) {
res.push(...replaceWith);
} else {
res.push(replaceWith);
}
} else {
res.push(item);
}
} else {
res.push(item);
}
}
if (arrayModified) {
return res;
}
return undefined;
}
if (_.isPlainObject(value)) {
if (_.intersection(args.allDefs ?? [], Object.keys(value))?.length > 0) {
modified = true;
for (const key in value) {
if (args.defs.includes(key)) {
return value[key];
}
}
return undefined;
}
}
if (_.isString(value)) {
let stringModified = false;
for (const key of Object.keys(args.stringReplace ?? {})) {
if (value.includes(key)) {
modified = true;
stringModified = true;
value = value.replaceAll(key, args.stringReplace[key]);
}
}
if (stringModified) {
return value;
}
return undefined;
}
if (value?._include) {
modified = true;
return includes[value?._include];
}
if (value?._replace) {
modified = true;
return args?.replace[value?._replace];
}
});
}
function processJson(json, args = {}) {
const MAX_STEPS = 64;
for (let i = 0; i < MAX_STEPS; i++) {
modified = false;
json = processJsonStep(json, args);
if (!modified) {
break;
}
}
return json;
}
function processFiles() {
const dumpOptions = {
lineWidth: -1,
};
for (const file of fs.readdirSync(indir)) {
const text = fs.readFileSync(path.join(indir, file), { encoding: 'utf-8' });
const json = yaml.load(text);
if (json._module) {
continue;
}
if (json._templates) {
const allDefs = Object.keys(json._templates);
for (const key in json._templates) {
allDefs.push(...(json._templates[key].defs ?? []));
}
for (const key in json._templates) {
const args = {
defs: [key, ...(json._templates[key]?.defs ?? [])],
replace: json._templates[key]?.replace,
stringReplace: json._templates[key]?.['string-replace'],
allDefs,
};
const converted = processJson(_.omit(json, ['_templates']), args);
const out = path.join(outdir, json._templates[key].file);
fs.writeFileSync(out, HEADER + yaml.dump(converted, dumpOptions));
}
} else {
fs.writeFileSync(path.join(outdir, file), HEADER + yaml.dump(processJson(json), dumpOptions));
}
}
}
function deleteOldFiles() {
const files = fs.readdirSync(outdir);
for (const file of files) {
fs.unlinkSync(path.join(outdir, file));
}
}
function run() {
deleteOldFiles();
readIncludes();
processFiles();
}
run();
+1
View File
@@ -0,0 +1 @@
module.exports = 'false';
+25
View File
@@ -0,0 +1,25 @@
// these packages will be never bundled with webpack
const volatilePackages = [
'@clickhouse/client',
'bson', // this package is already bundled and is used in mongodb
'mongodb',
'mongodb-client-encryption',
'tedious',
'msnodesqlv8',
'mysql2',
'oracledb',
'pg-copy-streams',
'pg',
'ioredis',
'node-redis-dump2',
'better-sqlite3',
'@azure/cosmos',
'@aws-sdk/rds-signer',
'activedirectory2',
'axios',
'ssh2',
'wkx',
];
module.exports = volatilePackages;
+23 -22
View File
@@ -1,6 +1,6 @@
# this compose file is for testing purposes only
# use it for testing docker containsers built on local machine
version: "3"
version: '3'
services:
dbgate:
build: docker
@@ -15,31 +15,31 @@ services:
volumes:
- dbgate-data:/root/.dbgate
# environment:
# WEB_ROOT: /dbgate
# CONNECTIONS: mssql
# LABEL_mssql: MS Sql
# SERVER_mssql: mssql
# USER_mssql: sa
# PORT_mssql: 1433
# PASSWORD_mssql: Pwd2020Db
# ENGINE_mssql: mssql@dbgate-plugin-mssql
# proxy:
# # image: nginx
# build: test/nginx
# ports:
# - 8082:80
# CONNECTIONS: mssql
# LABEL_mssql: MS Sql
# SERVER_mssql: mssql
# USER_mssql: sa
# PORT_mssql: 1433
# PASSWORD_mssql: Pwd2020Db
# ENGINE_mssql: mssql@dbgate-plugin-mssql
proxy:
# image: nginx
build: test/nginx
ports:
- 8082:80
# volumes:
# - /home/jena/test/chinook:/mnt/sqt
# environment:
# CONNECTIONS: sqlite
volumes:
- /home/jena/test/chinook:/mnt/sqt
environment:
CONNECTIONS: sqlite
# LABEL_sqlite: sqt
# FILE_sqlite: /mnt/sqt/Chinook.db
# ENGINE_sqlite: sqlite@dbgate-plugin-sqlite
LABEL_sqlite: sqt
FILE_sqlite: /mnt/sqt/Chinook.db
ENGINE_sqlite: sqlite@dbgate-plugin-sqlite
# mssql:
# image: mcr.microsoft.com/mssql/server
@@ -51,4 +51,5 @@ services:
volumes:
dbgate-data:
driver: local
driver: local
+2 -13
View File
@@ -1,21 +1,10 @@
FROM ubuntu:22.04
FROM node:22
RUN apt-get update && apt-get install -y \
curl \
gnupg \
iputils-ping \
iproute2 \
unixodbc \
gcc \
g++ \
make
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource-archive-keyring.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/nodesource-archive-keyring.gpg] https://deb.nodesource.com/node_18.x jammy main" | tee /etc/apt/sources.list.d/nodesource.list \
&& echo "deb-src [signed-by=/usr/share/keyrings/nodesource-archive-keyring.gpg] https://deb.nodesource.com/node_18.x jammy main" | tee -a /etc/apt/sources.list.d/nodesource.list \
&& apt-get update && apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/* \
&& npm install -g yarn
&& rm -rf /var/lib/apt/lists/*
WORKDIR /home/dbgate-docker
+7
View File
@@ -0,0 +1,7 @@
module.exports = {
mysql: true,
postgres: true,
mssql: true,
oracle: true,
sqlite: true,
};
+25
View File
@@ -0,0 +1,25 @@
const path = require('path');
const os = require('os');
const fs = require('fs');
const baseDir = path.join(os.homedir(), '.dbgate');
function clearTestingData() {
if (fs.existsSync(path.join(baseDir, 'connections-e2etests.jsonl'))) {
fs.unlinkSync(path.join(baseDir, 'connections-e2etests.jsonl'));
}
if (fs.existsSync(path.join(baseDir, 'settings-e2etests.json'))) {
fs.unlinkSync(path.join(baseDir, 'settings-e2etests.json'));
}
if (fs.existsSync(path.join(baseDir, 'files-e2etests'))) {
fs.rmdirSync(path.join(baseDir, 'files-e2etests'), { recursive: true });
}
if (fs.existsSync(path.join(baseDir, 'archive-e2etests'))) {
fs.rmdirSync(path.join(baseDir, 'archive-e2etests'), { recursive: true });
}
if (fs.existsSync(path.join(__dirname, '../my_guitar_shop.db'))) {
fs.unlinkSync(path.join(__dirname, '../my_guitar_shop.db'));
}
}
clearTestingData();
+7
View File
@@ -0,0 +1,7 @@
FROM dexidp/dex:v2.35.3
COPY dex-config.yaml /etc/dex/cfg/config.yaml
EXPOSE 5556
CMD ["dex", "serve", "/etc/dex/cfg/config.yaml"]
+27
View File
@@ -0,0 +1,27 @@
issuer: http://localhost:16009/dex
storage:
type: memory
web:
http: 0.0.0.0:5556
oauth2:
skipApprovalScreen: true
staticClients:
- id: my-app
redirectURIs:
- 'http://localhost:3000/'
name: 'My Test App'
secret: my-secret
enablePasswordDB: true
staticPasswords:
- email: "test@example.com"
emailVerified: true
hash: "$2y$10$JcmlXnV1y7.egUdKwYNbseOnqYVIGc323gtvvHh4ZuSPZB30veYZy"
username: "test"
userID: "1234"
allowedScopes:
- openid
- email
- profile
@@ -0,0 +1,27 @@
FROM ubuntu:22.04
RUN apt-get update && \
apt-get install -y openssh-server mysql-server && \
apt-get clean && rm -rf /var/lib/apt/lists/*
RUN mkdir /var/run/sshd
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin without-password/' /etc/ssh/sshd_config
RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
COPY mykey.pub /root/.ssh/authorized_keys
RUN chmod 600 /root/.ssh/authorized_keys
RUN service mysql start && \
mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;" && \
service mysql stop
EXPOSE 22
COPY start.sh /start.sh
RUN chmod +x /start.sh
CMD ["/start.sh"]
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClN/tu+X7PVYpMBEQDwxtyG0oNuKqcJdBud/vBUalyYSpliXO30BsBusjCyAh8ENVllmGTRaTcqAUPg/vwekaAMFZu9EXmQsdhPEWSxrkPkXXKsWrZVPtRV8l3wuSy/VLxbXRLujTpIEE5Au88e2CFN3zzuhg9rvsXE0cGjyYe9Cw3Ub+Yo6rbnESI7F+Jun29/wD8RF+kRL5cr7BrDoOBQf4yGexrTbUPMZ4b8QlGfXUwZhn6LlWVoWq7BMRelnfIAkuC+LwavvnkMqXMITmGa7sG0zOXByW7iGdP6TWVq9Ks+yCZoAA9ncAkgkpwoNrOSXR6dM5UjrsfJ2Na332QfxK8MmC+nBiyXIKUaQY2G8Wfm93GQqDc+349JFwH4ZjgYWJlTd/UfRCn4j30jxe1RKnjt5xGqb3L+j8JfuSPcojWRekg/K8GxBmaMCcEdqjIFD4MxeIUW3bGHd30wnuZkTPWlSmAGrO0fZXj0s1fmOBME05TjE8jsyKPmb2Kd3JdtCuTrjOgrYiHaMfcv/VqVhIv2kCKjnvhAxCqfGfKxxgcerItbrsfFAvYak1kwZelBquHOK6SkMH5WhDyhvGY+ZF0Wbg3CpynlpJVu4E3LSglYNbkIWqS3pAf+hqJtXl9SHCLgKFUcCIz0ZNQkT+PtUlR3klp6qoPXUWrcL3pdQ== test
@@ -0,0 +1,7 @@
#!/bin/bash
service ssh start
service mysql start
tail -f /dev/null
@@ -0,0 +1,23 @@
FROM ubuntu:22.04
RUN apt-get update && \
apt-get install -y openssh-server mysql-server && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN mkdir /var/run/sshd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN echo 'root:root' | chpasswd
RUN service mysql start && \
mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;" && \
service mysql stop
EXPOSE 22
COPY start.sh /start.sh
RUN chmod +x /start.sh
CMD ["/start.sh"]
@@ -0,0 +1,7 @@
#!/bin/bash
service ssh start
service mysql start
tail -f /dev/null
+67
View File
@@ -0,0 +1,67 @@
const { defineConfig } = require('cypress');
const killPort = require('kill-port');
const waitOn = require('wait-on');
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
module.exports = defineConfig({
e2e: {
// trashAssetsBeforeRuns: false,
setupNodeEvents(on, config) {
// implement node event listeners here
on('before:spec', async details => {
// console.log('********************* DETAILS *********************', JSON.stringify(details));
if (config.isInteractive) {
try {
await killPort(3000);
} catch (e) {
console.warn('Error killing process on port 3000:', e.message);
}
switch (details.fileName) {
case 'add-connection':
serverProcess = exec('yarn start:add-connection');
break;
case 'portal':
serverProcess = exec('yarn start:portal');
break;
case 'oauth':
serverProcess = exec('yarn start:oauth');
break;
case 'browse-data':
serverProcess = exec('yarn start:browse-data');
break;
case 'team':
serverProcess = exec('yarn start:team');
break;
case 'multi-sql':
serverProcess = exec('yarn start:multi-sql');
break;
}
await waitOn({ resources: ['http://localhost:3000'] });
serverProcess.stdout.on('data', data => {
console.log(data.toString());
});
serverProcess.stderr.on('data', data => {
console.error(data.toString());
});
}
});
on('after:screenshot', details => {
if (details.name) {
fs.renameSync(details.path, path.resolve(__dirname, `screenshots/${details.name}.png`));
}
});
// on('task', {
// renameFile({ from, to }) {
// fs.renameSync(from, to);
// },
// });
},
},
});
+109
View File
@@ -0,0 +1,109 @@
const path = require('path');
beforeEach(() => {
cy.visit('http://localhost:3000');
cy.viewport(1200, 900);
});
describe('Add connection', () => {
it('successfully loads', () => {
cy.contains('Database not selected');
});
it('adds connection', () => {
// cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
cy.themeshot('connection');
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('Pwd2020Db');
cy.get('[data-testid=ConnectionDriverFields_port]').clear().type('16004');
cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-1');
// test connection
cy.get('[data-testid=ConnectionTab_buttonTest]').click();
cy.contains('Connected:');
// save and connect
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
cy.contains('performance_schema');
});
it('SSH connection - user + password', () => {
cy.contains('Connections');
// cy.realPress('F1');
// cy.realType('Close all');
// cy.realPress('Enter');
cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-ssh-1');
cy.get('[data-testid=ConnectionTab_tabSshTunnel]').click();
cy.get('[data-testid=ConnectionSshTunnelFields_useSshTunnel]').check();
cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear().type('root');
cy.get('[data-testid=ConnectionSshTunnelFields_sshPassword]').clear().type('root');
cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16012');
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
cy.contains('performance_schema');
});
it('SSH connection - keyfile', () => {
cy.contains('Connections');
// cy.realPress('F1');
// cy.realType('Close all');
// cy.realPress('Enter');
cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-ssh-2');
cy.get('[data-testid=ConnectionTab_tabSshTunnel]').click();
cy.get('[data-testid=ConnectionSshTunnelFields_useSshTunnel]').check();
cy.get('[data-testid=ConnectionSshTunnelFields_sshMode]').select('Key file');
cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear();
cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').type('root');
cy.get('[data-testid=ConnectionSshTunnelFields_sshKeyfile]')
.clear()
.type(path.join(Cypress.config('fileServerFolder'), 'cypress', 'e2e', 'mykey'));
cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16008');
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
cy.contains('performance_schema');
});
it('ask password - mysql', () => {
cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('Pwd2020Db');
cy.get('[data-testid=ConnectionDriverFields_port]').clear().type('16004');
cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-2');
cy.testid('ConnectionDriverFields_passwordMode').select('askPassword');
// test connection
cy.get('[data-testid=ConnectionTab_buttonTest]').click();
cy.testid('DatabaseLoginModal_password').clear().type('Pwd2020Db');
cy.testid('DatabaseLoginModal_connect').click();
cy.contains('Connected:');
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
// again type DB password - not saved
cy.testid('DatabaseLoginModal_password').clear().type('Pwd2020Db');
cy.testid('DatabaseLoginModal_connect').click();
cy.contains('performance_schema');
});
});
+450
View File
@@ -0,0 +1,450 @@
Cypress.on('uncaught:exception', (err, runnable) => {
// if the error message matches the one about WorkerGlobalScope importScripts
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
// return false to let Cypress know we intentionally want to ignore this error
return false;
}
// otherwise let Cypress throw the error
});
beforeEach(() => {
cy.visit('http://localhost:3000');
cy.viewport(1250, 900);
});
describe('Data browser data', () => {
it('Export window', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').rightclick();
cy.contains('Export').click();
cy.wait(1000);
// cy.testid('SourceTargetConfig_buttonCurrentArchive_target').click();
cy.testid('FormTablesSelect_buttonAll_tables').click();
// cy.wait(4000);
// cy.contains('All tables').click();
cy.contains('Run').click();
cy.contains('Finished job script');
cy.contains('Album.csv');
cy.testid('WidgetIconPanel_database').click();
cy.themeshot('exportcsv');
});
it('Data archive editor - macros', () => {
cy.testid('WidgetIconPanel_archive').click();
cy.contains('Album').click();
cy.testid('DataGrid_itemFilters').click();
cy.contains('Let There Be Rock').click();
cy.contains('Out Of Exile').click({ shiftKey: true });
cy.contains('Change text case').click();
cy.contains('AUDIOSLAVE');
cy.themeshot('freetable');
});
it('Load table data', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Album').click();
cy.contains('Let There Be Rock').click();
cy.contains('Rows: 347');
cy.realPress(['Control', 'ArrowRight']);
cy.contains('Aerosmith');
});
it('Filter model', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('SqlObjectList_search').clear().type('album');
cy.contains('Tables (1/11)');
cy.contains('347 rows, InnoDB');
cy.testid('SqlObjectList_searchMenuDropDown').click();
cy.contains('Column name').click();
cy.contains('Tables (2/11)');
cy.contains('AlbumId');
cy.contains('Column name').click();
cy.contains('AlbumId').should('not.exist');
cy.contains('Tables (1/11)');
});
it('Show raw data', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Album').rightclick();
cy.contains('Open raw data').click();
cy.contains('Let There Be Rock').click();
cy.contains('Rows: 347').should('not.exist');
cy.realPress(['Control', 'ArrowRight']);
cy.contains('Aerosmith').should('not.exist');
});
it('Data grid screenshots', () => {
cy.contains('MySql-connection').click();
cy.window().then(win => {
win.__changeCurrentTheme('theme-dark');
});
cy.contains('MyChinook').click();
cy.contains('Album').click();
cy.testid('TabsPanel_pinTabButton').click();
cy.contains('Genre').click();
cy.testid('TabsPanel_pinTabButton').click();
cy.contains('Playlist').click();
cy.testid('TabsPanel_pinTabButton').click();
cy.contains('Postgres-connection').click();
cy.contains('PgChinook').click();
cy.contains('customer').click();
cy.contains('Leonie').click();
cy.themeshot('datagrid');
cy.contains('invoice').click();
cy.contains('invoice_line (invoice_id)').click();
cy.themeshot('masterdetail');
cy.contains('9, Place Louis Barthou').click();
cy.contains('Switch to form').click();
cy.contains('Switch to table'); // test that we are in form view
cy.themeshot('formview');
});
it('SQL Gen', () => {
cy.contains('Postgres-connection').click();
cy.contains('PgChinook').rightclick();
cy.contains('SQL Generator').click();
cy.contains('Check all').click();
cy.themeshot('sqlgen');
});
it('Macros in DB', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Customer').click();
cy.contains('Leonie').click();
cy.contains('Ramos').click({ shiftKey: true });
cy.testid('DataGrid_itemColumns').click();
cy.testid('DataGrid_itemFilters').click();
cy.testid('DataGrid_itemReferences').click();
cy.testid('DataGrid_itemMacros').click();
cy.contains('Change text case').click();
cy.contains('NIELSEN');
cy.themeshot('macros');
});
it('Perspectives', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Artist').rightclick();
cy.contains('Design perspective query').click();
cy.testid('PerspectiveNodeRow_check_Artist_Album').click();
cy.testid('PerspectiveNodeRow_expand_Artist_Album').click();
cy.testid('PerspectiveNodeRow_check_Artist_Album_Track').click();
// check track is loaded
cy.contains('Put The Finger On You');
cy.themeshot('perspective1');
});
it('Query editor - code completion', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Customer').rightclick();
cy.contains('SQL template').click();
cy.contains('CREATE TABLE').click();
cy.get('body').realPress('PageDown');
cy.get('body').realType('select * from Album where Album.');
// code completion
cy.contains('ArtistId');
cy.themeshot('query');
});
it('Query editor - join wizard', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('TabsPanel_buttonNewQuery').click();
cy.wait(1000);
cy.get('body').realType('select * from Invoice');
cy.get('body').realPress('{enter}');
cy.get('body').realPress(['Control', 'j']);
// JOIN wizard
cy.contains('INNER JOIN Customer ON Invoice.CustomerId = Customer.CustomerId');
cy.themeshot('joinwizard');
});
it('Mongo JSON data view', () => {
cy.contains('Mongo-connection').click();
cy.contains('MgChinook').click();
cy.contains('Customer').click();
cy.testid('DataFilterControl_input_CustomerId').type('<=10{enter}');
// test filter
cy.contains('Rows: 10');
cy.contains('Helena').rightclick();
cy.contains('Open query').click();
cy.wait(1000);
cy.contains('Execute').click();
cy.testid('WidgetIconPanel_cell-data').click();
// test JSON view
cy.contains('Country: "Brazil"');
cy.themeshot('mongoquery');
});
it('SQL preview', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Customer').rightclick();
cy.contains('Show SQL').click();
// index should be part of create script
cy.contains('CREATE INDEX `IFK_CustomerSupportRepId`');
cy.themeshot('sqlpreview');
});
it('Query designer', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('WidgetIconPanel_file').click();
cy.contains('customer').click();
// cy.contains('left join').rightclick();
cy.themeshot('querydesigner');
});
it('Database diagram', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('WidgetIconPanel_file').click();
cy.contains('chinook-diagram').click();
cy.testid('WidgetIconPanel_file').click();
// check diagram is shown
cy.contains('MediaTypeId');
cy.themeshot('diagram');
});
it('Charts', () => {
cy.testid('WidgetIconPanel_file').click();
cy.contains('pie-chart').click();
cy.contains('line-chart').click();
cy.testid('TabsPanel_buttonSplit').click();
cy.testid('WidgetIconPanel_file').click();
cy.themeshot('charts');
});
it('Keyboard configuration', () => {
cy.testid('WidgetIconPanel_settings').click();
cy.contains('Keyboard shortcuts').click();
cy.contains('dataForm.refresh').click();
cy.testid('CommandModal_keyboardButton').click();
cy.themeshot('keyboard');
});
it('Command palette', () => {
cy.contains('Connections');
cy.testid('WidgetIconPanel_menu').click();
cy.contains('Tools').click();
cy.contains('Command palette').click();
// cy.realPress('F1');
cy.realPress('PageDown');
cy.realPress('PageDown');
cy.testid('CommandPalette_main').themeshot('commandpalette', { padding: 50 });
});
it('Show map', () => {
cy.contains('Postgres-connection').click();
cy.contains('PgGeoData').click();
cy.contains('cities').click();
// clicking column header doesn't work, TODO FIX in app!!!
// cy.contains('location').click();
cy.contains('14.2').click();
cy.contains('13.9').click({ shiftKey: true });
cy.testid('WidgetIconPanel_cell-data').click();
cy.wait(2000);
cy.themeshot('map');
});
it('Search in connections', () => {
cy.testid('ConnectionList_search').type('my');
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('SqlObjectList_search').type('album');
cy.contains('Album').click();
cy.testid('SqlObjectList_searchMenuDropDown').click();
cy.contains('Column name').click();
cy.themeshot('connsearch');
});
it('Plugin tab', () => {
cy.testid('WidgetIconPanel_plugins').click();
cy.contains('dbgate-plugin-theme-total-white').click();
// text from plugin markdown
cy.contains('Total white theme');
// wait for load logos
cy.wait(2000);
cy.themeshot('plugin');
});
it('Edit mongo data JSON', () => {
// TODO FIX: Missing button+ctx menu Revert all changes, missing button+ctx menu add document
// TODO: Dark theme - not visible changed and deleted document
cy.contains('Mongo-connection').click();
cy.contains('MgChinook').click();
cy.contains('Customer').rightclick();
cy.contains('Open JSON').click();
cy.contains('Leonie').rightclick();
cy.contains('Edit document').click();
// cy.focused()
// .type('{downArrow}'.repeat(11))
// .type('{rightarrow}'.repeat(14))
// .type('{del}'.repeat(7)) // 4*delete
// .type('Italy'); // type "Italy"
Array.from({ length: 11 }).forEach(() => cy.realPress('ArrowDown'));
Array.from({ length: 14 }).forEach(() => cy.realPress('ArrowRight'));
Array.from({ length: 7 }).forEach(() => cy.realPress('Delete'));
cy.realType('Italy');
cy.testid('EditJsonModal_saveButton').click();
cy.contains('Helena').rightclick();
cy.contains('Delete document').click();
cy.contains('Save').click();
cy.themeshot('mongosave');
});
it('Edit mongo data JSON', () => {
// TODO FIX: Auto expand cell view
cy.contains('Mongo-connection').click();
cy.contains('MgRivers').click();
cy.contains('RiverInfo').click();
cy.testid('ColumnManagerRow_expand_countries').click();
cy.testid('ColumnManagerRow_checkbox_countries.0').click();
cy.testid('ColumnManagerRow_checkbox_countries.1').click();
cy.testid('ColumnManagerRow_checkbox__id').click();
cy.testid('DataFilterControl_input_countries.1').type('EXISTS{enter}');
cy.testid('WidgetIconPanel_cell-data').click();
cy.themeshot('collection');
});
it('Table structure editor', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Customer').rightclick();
cy.contains('Open structure').click();
cy.contains('varchar(40)');
cy.themeshot('structure');
cy.contains('EmployeeId').click();
cy.contains('Ref column - Employee');
cy.themeshot('fkeditor');
});
it('Compare database', () => {
// TODO FIX: SQL diff is not dark in dark mode
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('MyChangedChinook').rightclick();
cy.contains('Compare with').click();
cy.testid('CompareModelTab_gridObjects_Customer_Customer').click();
cy.testid('WidgetIconPanel_database').click();
cy.testid('CompareModelTab_tabDdl').click();
cy.themeshot('dbcompare');
cy.contains('Settings').click();
cy.testid('CompareModelTab_tabOperations').click();
cy.themeshot('comparesettings');
});
it.skip('Query editor - AI assistant', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.testid('TabsPanel_buttonNewQuery').click();
cy.testid('QueryTab_switchAiAssistantButton').click();
cy.testid('QueryAiAssistant_allowSendToAiServiceButton').click();
cy.testid('ConfirmModal_okButton').click();
cy.testid('QueryAiAssistant_promptInput').type('album names');
cy.testid('QueryAiAssistant_queryFromQuestionButton').click();
cy.contains('Use this').click();
cy.testid('QueryTab_executeButton').click();
cy.contains('Balls to the Wall');
cy.themeshot('aiassistant');
});
it('Modify data', () => {
// TODO FIX: delete references cascade not working
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Employee').click();
cy.contains('Rows: 8');
cy.contains('Laura').click();
cy.contains('Laura').click();
cy.get('body').realType('Jane');
// cy.contains('Peacock').click();
// cy.testid('TableDataTab_deleteSelectedRows').click();
cy.contains('King').click();
cy.testid('TableDataTab_deleteSelectedRows').click();
cy.testid('TableDataTab_insertNewRow').click();
cy.get('body').realType('Novak');
cy.get('body').realPress('{enter}');
cy.realPress(['ArrowRight']);
cy.get('body').realType('Karel');
cy.testid('TableDataTab_save').click();
cy.contains('INSERT INTO `Employee`');
cy.contains("SET `FirstName`='Jane'");
cy.contains('DELETE FROM `Employee`');
cy.themeshot('modifydata');
// cy.testid('ConfirmSqlModal_okButton').click();
// cy.contains('Cannot delete or update a parent row')
// cy.testid('ConfirmSqlModal_okButton').click();
// cy.testid('TableDataTab_save').click();
// cy.testid('ConfirmSqlModal_deleteReferencesCascade').click();
// cy.testid('ConfirmSqlModal_okButton').click();
cy.testid('ConfirmSqlModal_okButton').click();
cy.contains('Novak');
cy.contains('Rows: 8');
});
// it('Import', () => {
// TBC after Import FIX
// cy.contains('MySql-connection').click();
// cy.contains('MyChinook').click();
// cy.contains('Customer').rightclickclick();
// cy.contains('Import').click();
// cy.get('input[type=file]').selectFile('cypress/fixtures/Customer_add.csv');
// cy.get('table tbody tr').eq(1).within(() => {
// cy.get('select').select('Append data');
// });
// });
it('Backup table', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('Customer').rightclick();
cy.contains('backup').click();
cy.testid('ConfirmSqlModal_okButton').click();
cy.contains ('_Customer').should('be.visible');
});
it('Truncate table', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('_Customer').click();
cy.contains('Leonie').click();
cy.contains('_Customer').rightclick();
cy.contains('Truncate table').click();
cy.testid('ConfirmSqlModal_okButton').click();
cy.contains('Leonie').click();
cy.testid ('TableDataTab_refreshGrid').click();
cy.contains('No rows loaded')
});
it('Drop table', () => {
cy.contains('MySql-connection').click();
cy.contains('MyChinook').click();
cy.contains('_Customer').rightclick();
cy.contains('Drop table').click();
cy.testid('ConfirmSqlModal_okButton').click();
cy.contains('_Customer').should('not.exist');
});
});
+101
View File
@@ -0,0 +1,101 @@
const localconfig = require('../../.localconfig');
const { formatQueryWithoutParams } = require('dbgate-tools');
global.DBGATE_PACKAGES = {
'dbgate-tools': require('dbgate-tools'),
};
function requireEngineDriver(engine) {
const [shortName, packageName] = engine.split('@');
const plugin = require(`../../../plugins/${packageName}/src/frontend/index`);
if (plugin.drivers) {
return plugin.drivers.find(x => x.engine == engine);
}
throw new Error(`Could not find engine driver ${engine}`);
}
Cypress.on('uncaught:exception', (err, runnable) => {
// if the error message matches the one about WorkerGlobalScope importScripts
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
// return false to let Cypress know we intentionally want to ignore this error
return false;
}
// otherwise let Cypress throw the error
});
beforeEach(() => {
cy.visit('http://localhost:3000');
cy.viewport(1250, 900);
});
function multiTest(testName, testDefinition) {
if (localconfig.mysql) {
it(testName + ' MySQL', () => testDefinition('MySql-connection', 'mysql@dbgate-plugin-mysql'));
}
if (localconfig.postgres) {
it(testName + ' Postgres', () => testDefinition('Postgres-connection', 'postgres@dbgate-plugin-postgres'));
}
if (localconfig.mssql) {
it(testName + ' Mssql', () => testDefinition('Mssql-connection', 'mssql@dbgate-plugin-mssql'));
}
if (localconfig.oracle) {
it(testName + ' Oracle', () =>
testDefinition('Oracle-connection', 'oracle@dbgate-plugin-oracle', {
databaseName: 'C##MY_GUITAR_SHOP',
implicitTransactions: true,
})
);
}
if (localconfig.sqlite) {
it(testName + ' Sqlite', () => testDefinition('Sqlite-connection', 'sqlite@dbgate-plugin-sqlite'));
}
}
describe('Mutli-sql tests', () => {
multiTest('Transactions', (connectionName, engine, options = {}) => {
const driver = requireEngineDriver(engine);
const databaseName = options.databaseName ?? 'my_guitar_shop';
const implicitTransactions = options.implicitTransactions ?? false;
cy.contains(connectionName).click();
cy.contains(databaseName).click();
cy.testid('TabsPanel_buttonNewQuery').click();
cy.wait(1000);
cy.get('body').type(
formatQueryWithoutParams(driver, "INSERT INTO ~categories (~category_id, ~category_name) VALUES (5, 'test');")
);
// rollback
if (!implicitTransactions) {
cy.testid('QueryTab_beginTransactionButton').click();
cy.contains('Begin Transaction finished');
}
cy.testid('QueryTab_executeButton').click();
cy.contains('Query execution finished');
cy.testid('QueryTab_rollbackTransactionButton').click();
cy.contains('Rollback Transaction finished');
// should contain 4 rows
cy.testid('SqlObjectList_container').contains('categories').click();
cy.contains('Guitars').click();
cy.testid('TableDataTab_refreshGrid').click();
cy.contains('Rows: 4');
// commit
cy.contains('Query #1').click();
if (!implicitTransactions) {
cy.testid('QueryTab_beginTransactionButton').click();
cy.contains('Begin Transaction finished');
}
cy.testid('QueryTab_executeButton').click();
cy.contains('Query execution finished');
cy.testid('QueryTab_commitTransactionButton').click();
cy.contains('Commit Transaction finished');
// should contain 5 rows
cy.testid('SqlObjectList_container').contains('categories').click();
cy.contains('Guitars').click();
cy.testid('TableDataTab_refreshGrid').click();
cy.contains('Rows: 5');
});
});
+49
View File
@@ -0,0 +1,49 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAgEApTf7bvl+z1WKTAREA8MbchtKDbiqnCXQbnf7wVGpcmEqZYlzt9Ab
AbrIwsgIfBDVZZZhk0Wk3KgFD4P78HpGgDBWbvRF5kLHYTxFksa5D5F1yrFq2VT7UVfJd8
Lksv1S8W10S7o06SBBOQLvPHtghTd887oYPa77FxNHBo8mHvQsN1G/mKOq25xEiOxfibp9
vf8A/ERfpES+XK+waw6DgUH+Mhnsa021DzGeG/EJRn11MGYZ+i5VlaFquwTEXpZ3yAJLgv
i8Gr755DKlzCE5hmu7BtMzlwclu4hnT+k1lavSrPsgmaAAPZ3AJIJKcKDazkl0enTOVI67
HydjWt99kH8SvDJgvpwYslyClGkGNhvFn5vdxkKg3Pt+PSRcB+GY4GFiZU3f1H0Qp+I99I
8XtUSp47ecRqm9y/o/CX7kj3KI1kXpIPyvBsQZmjAnBHaoyBQ+DMXiFFt2xh3d9MJ7mZEz
1pUpgBqztH2V49LNX5jgTBNOU4xPI7Mij5m9indyXbQrk64zoK2Ih2jH3L/1alYSL9pAio
574QMQqnxnyscYHHqyLW67HxQL2GpNZMGXpQarhziukpDB+VoQ8obxmPmRdFm4Nwqcp5aS
VbuBNy0oJWDW5CFqkt6QH/oaibV5fUhwi4ChVHAiM9GTUJE/j7VJUd5JaeqqD11Fq3C96X
UAAAdAKwO+PisDvj4AAAAHc3NoLXJzYQAAAgEApTf7bvl+z1WKTAREA8MbchtKDbiqnCXQ
bnf7wVGpcmEqZYlzt9AbAbrIwsgIfBDVZZZhk0Wk3KgFD4P78HpGgDBWbvRF5kLHYTxFks
a5D5F1yrFq2VT7UVfJd8Lksv1S8W10S7o06SBBOQLvPHtghTd887oYPa77FxNHBo8mHvQs
N1G/mKOq25xEiOxfibp9vf8A/ERfpES+XK+waw6DgUH+Mhnsa021DzGeG/EJRn11MGYZ+i
5VlaFquwTEXpZ3yAJLgvi8Gr755DKlzCE5hmu7BtMzlwclu4hnT+k1lavSrPsgmaAAPZ3A
JIJKcKDazkl0enTOVI67HydjWt99kH8SvDJgvpwYslyClGkGNhvFn5vdxkKg3Pt+PSRcB+
GY4GFiZU3f1H0Qp+I99I8XtUSp47ecRqm9y/o/CX7kj3KI1kXpIPyvBsQZmjAnBHaoyBQ+
DMXiFFt2xh3d9MJ7mZEz1pUpgBqztH2V49LNX5jgTBNOU4xPI7Mij5m9indyXbQrk64zoK
2Ih2jH3L/1alYSL9pAio574QMQqnxnyscYHHqyLW67HxQL2GpNZMGXpQarhziukpDB+VoQ
8obxmPmRdFm4Nwqcp5aSVbuBNy0oJWDW5CFqkt6QH/oaibV5fUhwi4ChVHAiM9GTUJE/j7
VJUd5JaeqqD11Fq3C96XUAAAADAQABAAACAAOZKogKNbF8+BwbuQIpTP8Oim2uE0PUrFYb
lYdqUznDKqc3d9ENs+jfu+DyIQKCuK2+ZAr5vf4dnVlEffIzgjbnK/ASsIsJR/UILlkPVu
x4izY06FIqFackivtpao2zaAu2CeMJqn6r+H+uCVkp3rpIBm1QekKtqEOiZIOcuS8nZjx2
MqliYdA9S7N9DRT0037rKjGpqOOXqQW1FdnfC7d+9nL6OY9EtqgeuTDRQ8BzRGAfeSVdE6
QZ9eHI2CCvP5XtkYjICLYUaWDc8YYhRcggWdxrhnjIQRF1MRApJhpHubjmvJkGm7q70CQm
FPT1q+OeRJko022SsOScI6p7qkJjEsHS4RLbSGkDAn84U9l1MnHbzOqOQbI/Mnn7vNyZt4
e7n/ExUg9HglpdLgETl0oLIaiVgYGrJSLflfYtrgfEISGtoroQDj/X96HZsF+Aku+I3U4z
OD7UasFDl3LsTO3bWz8/vqkCfi/ncejZ4keWUA6VahbtJUg8E/eEIWMz8gFoO/vWf1l0H0
V51ISzInt1yVnqhdbRPH+Ce4NlNjq9JlhiZVJSsc6ke2580Okttc3JETzdHWNac7k+/0u4
lPZK2sII1cq/d+9YAe3JVpUuiQyX6R4Crga2GIyevoqm3EyXUNN/vjDCx4qyToOtJUzHao
tXI4tZZkBmtVrhqf1pAAABAQC3lG50iMbJXL8vVsB7P8UWLgmI13PqwHB8ldzsLrNtkU7q
N3KYdz/ycGGPAKxfMJiGs00qT8/d107MZYmj7hHE84VuBiHVGSXbzmL5zeth0aN4oINee0
jlvCPKjqhoImPtrU1fLglqOeTNJcZK7XzwiZry1ZHp0hXd4XPrWHZBZo37SYv9/t652zR4
qmXlxwwwdtzuNFiAexTu0K4zY12hjmoGlvlCS2YJ+B2wJNd3E1RnL505m7dIA/dLnCLeEj
zf8j1XiZ9i/m7mrU/g/e9SFP+HVwi5AV5eyHbNSPD6GZ7quWL4SlP+GGkNtKden+LIaB+G
iRwCLTgCVThdIC6oAAABAQDA6Gm7luZuzOoWBQzVKc74AOf64Op+eZwQBCC3V+eHjmyIQW
oBozvlvaNxapNxJZQjtnlckCkW59RheQxm155j/MV6aVvaD9WWNFB9k+0fujmPd4fPoZF1
9y5J3L3l9hmv+51vZvKvky5mXxOGdONTQZkpGqGvmlZpVO9jWe4WWACokqRIrS9zwtfLgf
hH+hUMh+9R1iIKACleNdfHbiqia+XIXxivbVdCtTgdPM6mW8i3gP1/oSTpYZI5KIRH4PTO
6OgG8EvRCIPc/0mddXZqiabhpPM/r5qe0jKxcQHFf1siwq7EyZ/C8ctBxpEK4dVCNnCTX4
k7+/JizOJzhzljAAABAQDbQT0BsBCM2Dl+LbwpAy6iaS0fWqhCnQ9B6ojWcfNouXuIW4tF
6fwmoqyFU2SoORmj0G6ww1NiBr+gwSDo5wSEpCI78S1CnFcp7J1HhONGthmdYDclpDlci5
t5AOIC7hhmdkqL46happxG9MH8oOua7/cqK7300nJo+ZS3XOo4O3siTjDVtVKXRAY5jWuG
mLNXQ8JKCzqmFfLlAAgGWaY7rMaGu+9Rom+F4FEZ4IUitcsN77jFNBXMXqnWy/ayr8CJpe
CxgwBm5JWQ7m+cmskMl3nmjkNr8nCiZoMcz4sIrVkZWS4PHoVFtN3jKYmo3c02kq8/378I
jIy5WYf/zrVHAAAABHRlc3QBAgMEBQY=
-----END OPENSSH PRIVATE KEY-----
+14
View File
@@ -0,0 +1,14 @@
describe('OAuth', () => {
it('OAuth login', () => {
cy.visit('http://localhost:3000');
// login on DEX
cy.get('#login').clear().type('test@example.com');
cy.get('#password').clear().type('test');
cy.get('#submit-login').click();
// check DbGate connection
cy.contains('MySql-connection').click();
cy.contains('performance_schema');
});
});
+93
View File
@@ -0,0 +1,93 @@
describe('Run as portal', () => {
it('successfully loads', () => {
cy.visit('http://localhost:3000');
cy.contains('MySql-connection');
cy.contains('Postgres-connection');
});
// it('Delete chinook', () => {
// cy.visit('http://localhost:3000');
// cy.contains('MySql-connection').rightclick();
// cy.contains('New Query (server)').click();
// cy.realType('drop database if exists Chinook');
// cy.realPress('F5');
// cy.contains('Query execution finished');
// cy.contains('Postgres-connection').rightclick();
// cy.contains('New Query (server)').click();
// cy.realType('drop database if exists "Chinook"');
// cy.realPress('F5');
// cy.contains('Query execution finished');
// // cy.realPress('F1');
// // cy.realType('Close all');
// // cy.realPress('Enter');
// });
it('Create Chinook MySQL', () => {
cy.visit('http://localhost:3000');
cy.contains('MySql-connection').click();
cy.contains('MySql-connection').rightclick();
cy.contains('Create database').click();
cy.get('[data-testid=InputTextModal_value]').clear().type('Chinook');
cy.get('[data-testid=InputTextModal_ok]').click();
});
it('Create Chinook Postgres', () => {
cy.visit('http://localhost:3000');
cy.contains('Postgres-connection').click();
cy.contains('Postgres-connection').rightclick();
cy.contains('Create database').click();
cy.get('[data-testid=InputTextModal_value]').clear().type('Chinook');
cy.get('[data-testid=InputTextModal_ok]').click();
});
it('Import Chinook MySQL', () => {
cy.visit('http://localhost:3000');
cy.contains('MySql-connection').click();
cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
cy.contains('Chinook').rightclick();
cy.contains('Restore/import SQL dump').click();
cy.get('#uploadFileButton').selectFile('data/chinook-mysql.sql', { force: true });
cy.wait(500);
cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
cy.contains('Importing database');
cy.contains('Finished job script');
cy.get('[data-testid=RunScriptModal_close]').click();
cy.contains('Chinook').click();
cy.contains('Album');
});
it('Import Chinook Postgres', () => {
cy.visit('http://localhost:3000');
cy.contains('Postgres-connection').click();
cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
cy.contains('Restore/import SQL dump').click();
cy.get('#uploadFileButton').selectFile('data/chinook-postgres.sql', { force: true });
cy.wait(500);
cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
cy.contains('Importing database');
cy.contains('Finished job script');
cy.get('[data-testid=RunScriptModal_close]').click();
cy.contains('Chinook').click();
cy.contains('album');
});
it('Open ask pwd connection', () => {
cy.visit('http://localhost:3000');
cy.contains('Postgres-ask-connection').click();
cy.testid('DatabaseLoginModal_username').clear().type('postgres');
cy.testid('DatabaseLoginModal_password').clear().type('Pwd2020Db');
cy.testid('DatabaseLoginModal_connect').click();
cy.contains('Chinook').click();
cy.contains('album');
});
// it('import chinook DB', () => {
// cy.visit('http://localhost:3000');
// cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
// });
});
+82
View File
@@ -0,0 +1,82 @@
beforeEach(() => {
cy.visit('http://localhost:3000');
cy.viewport(1250, 900);
});
describe('Team edition tests', () => {
it('Team edition screens', () => {
cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemConnections').click();
cy.contains('New connection').click();
cy.contains('New connection').click();
cy.contains('New connection').click();
cy.testid('ConnectionDriverFields_connectionType').select('PostgreSQL');
cy.themeshot('connadmin');
cy.testid('AdminMenuWidget_itemRoles').click();
cy.contains('Permissions').click();
cy.themeshot('roleadmin');
cy.testid('AdminMenuWidget_itemAuthentication').click();
cy.contains('Add authentication').click();
cy.contains('Use database login').click();
cy.contains('Add authentication').click();
cy.contains('OAuth 2.0').click();
cy.themeshot('authadmin');
});
it('OAuth authentication', () => {
cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemAuthentication').click();
// cy.testid('AdminAuthForm_disableButton_local').click();
// cy.testid('AdminAuthForm_disableButton_none').click();
// fill OAuth
cy.contains('Add authentication').click();
cy.contains('OAuth 2.0').click();
cy.testid('AdminAuthForm_oauthAuth_oauth').type('http://localhost:16009/dex/auth');
cy.testid('AdminAuthForm_oauthToken_oauth').type('http://localhost:16009/dex/token');
cy.testid('AdminAuthForm_oauthScope_oauth').type('openid email profile');
cy.testid('AdminAuthForm_oauthClient_oauth').type('my-app');
cy.testid('AdminAuthForm_oauthClientSecret_oauth').type('my-secret');
cy.testid('AdminAuthForm_oauthLoginField_oauth').type('name');
cy.testid('AdminAuthForm_oauthSaveNotDefinedLogins_oauth').click();
cy.testid('AdminAuthForm_oauthEmailField_oauth').type('email');
cy.testid('AdminAuthTab_saveButton').click();
cy.testid('WidgetIconPanel_menu').click();
cy.contains('File').click();
cy.contains('Logout').click();
cy.testid('LoginPage_linkRegularUser').click();
// login two times
for (let index of [1, 2]) {
// login as OAuth
cy.testid('LoginPage_loginButton_OAuth 2.0').click();
// login on DEX
cy.get('#login').clear().type('test@example.com');
cy.get('#password').clear().type('test');
cy.get('#submit-login').click();
// logout
cy.testid('WidgetIconPanel_menu').click();
cy.contains('File').click();
cy.contains('Logout').click();
cy.testid('NotLoggedPage_loginButton').click();
}
// Logout and login again as admin
cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemUsers').click();
cy.contains('test@example.com');
cy.contains('Rows: 1');
});
});
+5
View File
@@ -0,0 +1,5 @@
{
"name": "Using fixtures to represent data",
"email": "hello@cypress.io",
"body": "Fixtures are a great way to mock data for responses to routes"
}
+93
View File
@@ -0,0 +1,93 @@
const path = require('path');
// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add('login', (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
Cypress.Commands.add('testid', (testId, options = {}) => {
return cy.get(`[data-testid="${testId}"]`, options);
});
Cypress.Commands.add(
'themeshot',
{
prevSubject: 'optional',
},
(subject, file, options) => {
cy.window().then(win => {
win.__changeCurrentTheme('theme-dark');
});
// cy.screenshot(`${file}-dark`, {
// onAfterScreenshot: (doc, props) => {
// cy.task('renameFile', {
// from: props.path,
// to: path.resolve(__dirname, `../../screenshots/${file}-dark.png`),
// });
// // fs.rename(props.path, path.resolve(path.join(__dirname, `../../screenshots/${file}-dark.png`)));
// },
// });
if (subject) {
cy.wrap(subject).screenshot(`${file}-dark`, options);
} else {
cy.screenshot(`${file}-dark`, options);
}
// .then(props => {
// return cy.task('renameFile', {
// from: props.path,
// to: path.resolve(__dirname, `../../screenshots/${file}-dark.png`),
// });
// });
cy.window().then(win => {
win.__changeCurrentTheme('theme-light');
});
if (subject) {
cy.wrap(subject).screenshot(`${file}-light`, options);
} else {
cy.screenshot(`${file}-light`, options);
}
// .then(props => {
// return cy.task('renameFile', {
// from: props.path,
// to: path.resolve(__dirname, `../../screenshots/${file}-light.png`),
// });
// });
// cy.screenshot(`${file}-light`, {
// onAfterScreenshot: (doc, props) => {
// cy.task('renameFile', {
// from: props.path,
// to: path.resolve(__dirname, `../../screenshots/${file}-light.png`),
// });
// // fs.rename(props.path, path.resolve(path.join(__dirname, `../../screenshots/${file}-light.png`)));
// },
// });
}
);
+44
View File
@@ -0,0 +1,44 @@
// ***********************************************************
// This example support/e2e.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands';
// Alternatively you can use CommonJS syntax:
// require('./commands')
import 'cypress-real-events';
beforeEach(() => {
// Replace 'my-database-name' with the actual IndexedDB name
cy.window().then(win => {
return new Promise((resolve, reject) => {
const request = win.indexedDB.deleteDatabase('localforage');
request.onsuccess = () => {
// Database successfully deleted
resolve();
};
request.onerror = () => {
// Some error occurred
reject(request.error);
};
request.onblocked = () => {
// Might happen if there are open connections
console.warn('IndexedDB deletion blocked');
resolve();
};
});
});
});
+347
View File
@@ -0,0 +1,347 @@
{"AlbumId":1,"Title":"For Those About To Rock We Salute You","ArtistId":1}
{"AlbumId":2,"Title":"Balls to the Wall","ArtistId":2}
{"AlbumId":3,"Title":"Restless and Wild","ArtistId":2}
{"AlbumId":4,"Title":"Let There Be Rock","ArtistId":1}
{"AlbumId":5,"Title":"Big Ones","ArtistId":3}
{"AlbumId":6,"Title":"Jagged Little Pill","ArtistId":4}
{"AlbumId":7,"Title":"Facelift","ArtistId":5}
{"AlbumId":8,"Title":"Warner 25 Anos","ArtistId":6}
{"AlbumId":9,"Title":"Plays Metallica By Four Cellos","ArtistId":7}
{"AlbumId":10,"Title":"Audioslave","ArtistId":8}
{"AlbumId":11,"Title":"Out Of Exile","ArtistId":8}
{"AlbumId":12,"Title":"BackBeat Soundtrack","ArtistId":9}
{"AlbumId":13,"Title":"The Best Of Billy Cobham","ArtistId":10}
{"AlbumId":14,"Title":"Alcohol Fueled Brewtality Live! [Disc 1]","ArtistId":11}
{"AlbumId":15,"Title":"Alcohol Fueled Brewtality Live! [Disc 2]","ArtistId":11}
{"AlbumId":16,"Title":"Black Sabbath","ArtistId":12}
{"AlbumId":17,"Title":"Black Sabbath Vol. 4 (Remaster)","ArtistId":12}
{"AlbumId":18,"Title":"Body Count","ArtistId":13}
{"AlbumId":19,"Title":"Chemical Wedding","ArtistId":14}
{"AlbumId":20,"Title":"The Best Of Buddy Guy - The Millenium Collection","ArtistId":15}
{"AlbumId":21,"Title":"Prenda Minha","ArtistId":16}
{"AlbumId":22,"Title":"Sozinho Remix Ao Vivo","ArtistId":16}
{"AlbumId":23,"Title":"Minha Historia","ArtistId":17}
{"AlbumId":24,"Title":"Afrociberdelia","ArtistId":18}
{"AlbumId":25,"Title":"Da Lama Ao Caos","ArtistId":18}
{"AlbumId":26,"Title":"Acústico MTV [Live]","ArtistId":19}
{"AlbumId":27,"Title":"Cidade Negra - Hits","ArtistId":19}
{"AlbumId":28,"Title":"Na Pista","ArtistId":20}
{"AlbumId":29,"Title":"Axé Bahia 2001","ArtistId":21}
{"AlbumId":30,"Title":"BBC Sessions [Disc 1] [Live]","ArtistId":22}
{"AlbumId":31,"Title":"Bongo Fury","ArtistId":23}
{"AlbumId":32,"Title":"Carnaval 2001","ArtistId":21}
{"AlbumId":33,"Title":"Chill: Brazil (Disc 1)","ArtistId":24}
{"AlbumId":34,"Title":"Chill: Brazil (Disc 2)","ArtistId":6}
{"AlbumId":35,"Title":"Garage Inc. (Disc 1)","ArtistId":50}
{"AlbumId":36,"Title":"Greatest Hits II","ArtistId":51}
{"AlbumId":37,"Title":"Greatest Kiss","ArtistId":52}
{"AlbumId":38,"Title":"Heart of the Night","ArtistId":53}
{"AlbumId":39,"Title":"International Superhits","ArtistId":54}
{"AlbumId":40,"Title":"Into The Light","ArtistId":55}
{"AlbumId":41,"Title":"Meus Momentos","ArtistId":56}
{"AlbumId":42,"Title":"Minha História","ArtistId":57}
{"AlbumId":43,"Title":"MK III The Final Concerts [Disc 1]","ArtistId":58}
{"AlbumId":44,"Title":"Physical Graffiti [Disc 1]","ArtistId":22}
{"AlbumId":45,"Title":"Sambas De Enredo 2001","ArtistId":21}
{"AlbumId":46,"Title":"Supernatural","ArtistId":59}
{"AlbumId":47,"Title":"The Best of Ed Motta","ArtistId":37}
{"AlbumId":48,"Title":"The Essential Miles Davis [Disc 1]","ArtistId":68}
{"AlbumId":49,"Title":"The Essential Miles Davis [Disc 2]","ArtistId":68}
{"AlbumId":50,"Title":"The Final Concerts (Disc 2)","ArtistId":58}
{"AlbumId":51,"Title":"Up An' Atom","ArtistId":69}
{"AlbumId":52,"Title":"Vinícius De Moraes - Sem Limite","ArtistId":70}
{"AlbumId":53,"Title":"Vozes do MPB","ArtistId":21}
{"AlbumId":54,"Title":"Chronicle, Vol. 1","ArtistId":76}
{"AlbumId":55,"Title":"Chronicle, Vol. 2","ArtistId":76}
{"AlbumId":56,"Title":"Cássia Eller - Coleçăo Sem Limite [Disc 2]","ArtistId":77}
{"AlbumId":57,"Title":"Cássia Eller - Sem Limite [Disc 1]","ArtistId":77}
{"AlbumId":58,"Title":"Come Taste The Band","ArtistId":58}
{"AlbumId":59,"Title":"Deep Purple In Rock","ArtistId":58}
{"AlbumId":60,"Title":"Fireball","ArtistId":58}
{"AlbumId":61,"Title":"Knocking at Your Back Door: The Best Of Deep Purple in the 80's","ArtistId":58}
{"AlbumId":62,"Title":"Machine Head","ArtistId":58}
{"AlbumId":63,"Title":"Purpendicular","ArtistId":58}
{"AlbumId":64,"Title":"Slaves And Masters","ArtistId":58}
{"AlbumId":65,"Title":"Stormbringer","ArtistId":58}
{"AlbumId":66,"Title":"The Battle Rages On","ArtistId":58}
{"AlbumId":67,"Title":"Vault: Def Leppard's Greatest Hits","ArtistId":78}
{"AlbumId":68,"Title":"Outbreak","ArtistId":79}
{"AlbumId":69,"Title":"Djavan Ao Vivo - Vol. 02","ArtistId":80}
{"AlbumId":70,"Title":"Djavan Ao Vivo - Vol. 1","ArtistId":80}
{"AlbumId":71,"Title":"Elis Regina-Minha História","ArtistId":41}
{"AlbumId":72,"Title":"The Cream Of Clapton","ArtistId":81}
{"AlbumId":73,"Title":"Unplugged","ArtistId":81}
{"AlbumId":74,"Title":"Album Of The Year","ArtistId":82}
{"AlbumId":75,"Title":"Angel Dust","ArtistId":82}
{"AlbumId":76,"Title":"King For A Day Fool For A Lifetime","ArtistId":82}
{"AlbumId":77,"Title":"The Real Thing","ArtistId":82}
{"AlbumId":78,"Title":"Deixa Entrar","ArtistId":83}
{"AlbumId":79,"Title":"In Your Honor [Disc 1]","ArtistId":84}
{"AlbumId":80,"Title":"In Your Honor [Disc 2]","ArtistId":84}
{"AlbumId":81,"Title":"One By One","ArtistId":84}
{"AlbumId":82,"Title":"The Colour And The Shape","ArtistId":84}
{"AlbumId":83,"Title":"My Way: The Best Of Frank Sinatra [Disc 1]","ArtistId":85}
{"AlbumId":84,"Title":"Roda De Funk","ArtistId":86}
{"AlbumId":85,"Title":"As Cançőes de Eu Tu Eles","ArtistId":27}
{"AlbumId":86,"Title":"Quanta Gente Veio Ver (Live)","ArtistId":27}
{"AlbumId":87,"Title":"Quanta Gente Veio ver--Bônus De Carnaval","ArtistId":27}
{"AlbumId":88,"Title":"Faceless","ArtistId":87}
{"AlbumId":89,"Title":"American Idiot","ArtistId":54}
{"AlbumId":90,"Title":"Appetite for Destruction","ArtistId":88}
{"AlbumId":91,"Title":"Use Your Illusion I","ArtistId":88}
{"AlbumId":92,"Title":"Use Your Illusion II","ArtistId":88}
{"AlbumId":93,"Title":"Blue Moods","ArtistId":89}
{"AlbumId":94,"Title":"A Matter of Life and Death","ArtistId":90}
{"AlbumId":95,"Title":"A Real Dead One","ArtistId":90}
{"AlbumId":96,"Title":"A Real Live One","ArtistId":90}
{"AlbumId":97,"Title":"Brave New World","ArtistId":90}
{"AlbumId":98,"Title":"Dance Of Death","ArtistId":90}
{"AlbumId":99,"Title":"Fear Of The Dark","ArtistId":90}
{"AlbumId":100,"Title":"Iron Maiden","ArtistId":90}
{"AlbumId":101,"Title":"Killers","ArtistId":90}
{"AlbumId":102,"Title":"Live After Death","ArtistId":90}
{"AlbumId":103,"Title":"Live At Donington 1992 (Disc 1)","ArtistId":90}
{"AlbumId":104,"Title":"Live At Donington 1992 (Disc 2)","ArtistId":90}
{"AlbumId":105,"Title":"No Prayer For The Dying","ArtistId":90}
{"AlbumId":106,"Title":"Piece Of Mind","ArtistId":90}
{"AlbumId":107,"Title":"Powerslave","ArtistId":90}
{"AlbumId":108,"Title":"Rock In Rio [CD1]","ArtistId":90}
{"AlbumId":109,"Title":"Rock In Rio [CD2]","ArtistId":90}
{"AlbumId":110,"Title":"Seventh Son of a Seventh Son","ArtistId":90}
{"AlbumId":111,"Title":"Somewhere in Time","ArtistId":90}
{"AlbumId":112,"Title":"The Number of The Beast","ArtistId":90}
{"AlbumId":113,"Title":"The X Factor","ArtistId":90}
{"AlbumId":114,"Title":"Virtual XI","ArtistId":90}
{"AlbumId":115,"Title":"Sex Machine","ArtistId":91}
{"AlbumId":116,"Title":"Emergency On Planet Earth","ArtistId":92}
{"AlbumId":117,"Title":"Synkronized","ArtistId":92}
{"AlbumId":118,"Title":"The Return Of The Space Cowboy","ArtistId":92}
{"AlbumId":119,"Title":"Get Born","ArtistId":93}
{"AlbumId":120,"Title":"Are You Experienced?","ArtistId":94}
{"AlbumId":121,"Title":"Surfing with the Alien (Remastered)","ArtistId":95}
{"AlbumId":122,"Title":"Jorge Ben Jor 25 Anos","ArtistId":46}
{"AlbumId":123,"Title":"Jota Quest-1995","ArtistId":96}
{"AlbumId":124,"Title":"Cafezinho","ArtistId":97}
{"AlbumId":125,"Title":"Living After Midnight","ArtistId":98}
{"AlbumId":126,"Title":"Unplugged [Live]","ArtistId":52}
{"AlbumId":127,"Title":"BBC Sessions [Disc 2] [Live]","ArtistId":22}
{"AlbumId":128,"Title":"Coda","ArtistId":22}
{"AlbumId":129,"Title":"Houses Of The Holy","ArtistId":22}
{"AlbumId":130,"Title":"In Through The Out Door","ArtistId":22}
{"AlbumId":131,"Title":"IV","ArtistId":22}
{"AlbumId":132,"Title":"Led Zeppelin I","ArtistId":22}
{"AlbumId":133,"Title":"Led Zeppelin II","ArtistId":22}
{"AlbumId":134,"Title":"Led Zeppelin III","ArtistId":22}
{"AlbumId":135,"Title":"Physical Graffiti [Disc 2]","ArtistId":22}
{"AlbumId":136,"Title":"Presence","ArtistId":22}
{"AlbumId":137,"Title":"The Song Remains The Same (Disc 1)","ArtistId":22}
{"AlbumId":138,"Title":"The Song Remains The Same (Disc 2)","ArtistId":22}
{"AlbumId":139,"Title":"A TempestadeTempestade Ou O Livro Dos Dias","ArtistId":99}
{"AlbumId":140,"Title":"Mais Do Mesmo","ArtistId":99}
{"AlbumId":141,"Title":"Greatest Hits","ArtistId":100}
{"AlbumId":142,"Title":"Lulu Santos - RCA 100 Anos De Música - Álbum 01","ArtistId":101}
{"AlbumId":143,"Title":"Lulu Santos - RCA 100 Anos De Música - Álbum 02","ArtistId":101}
{"AlbumId":144,"Title":"Misplaced Childhood","ArtistId":102}
{"AlbumId":145,"Title":"Barulhinho Bom","ArtistId":103}
{"AlbumId":146,"Title":"Seek And Shall Find: More Of The Best (1963-1981)","ArtistId":104}
{"AlbumId":147,"Title":"The Best Of Men At Work","ArtistId":105}
{"AlbumId":148,"Title":"Black Album","ArtistId":50}
{"AlbumId":149,"Title":"Garage Inc. (Disc 2)","ArtistId":50}
{"AlbumId":150,"Title":"Kill 'Em All","ArtistId":50}
{"AlbumId":151,"Title":"Load","ArtistId":50}
{"AlbumId":152,"Title":"Master Of Puppets","ArtistId":50}
{"AlbumId":153,"Title":"ReLoad","ArtistId":50}
{"AlbumId":154,"Title":"Ride The Lightning","ArtistId":50}
{"AlbumId":155,"Title":"St. Anger","ArtistId":50}
{"AlbumId":156,"Title":"...And Justice For All","ArtistId":50}
{"AlbumId":157,"Title":"Miles Ahead","ArtistId":68}
{"AlbumId":158,"Title":"Milton Nascimento Ao Vivo","ArtistId":42}
{"AlbumId":159,"Title":"Minas","ArtistId":42}
{"AlbumId":160,"Title":"Ace Of Spades","ArtistId":106}
{"AlbumId":161,"Title":"Demorou...","ArtistId":108}
{"AlbumId":162,"Title":"Motley Crue Greatest Hits","ArtistId":109}
{"AlbumId":163,"Title":"From The Muddy Banks Of The Wishkah [Live]","ArtistId":110}
{"AlbumId":164,"Title":"Nevermind","ArtistId":110}
{"AlbumId":165,"Title":"Compositores","ArtistId":111}
{"AlbumId":166,"Title":"Olodum","ArtistId":112}
{"AlbumId":167,"Title":"Acústico MTV","ArtistId":113}
{"AlbumId":168,"Title":"Arquivo II","ArtistId":113}
{"AlbumId":169,"Title":"Arquivo Os Paralamas Do Sucesso","ArtistId":113}
{"AlbumId":170,"Title":"Bark at the Moon (Remastered)","ArtistId":114}
{"AlbumId":171,"Title":"Blizzard of Ozz","ArtistId":114}
{"AlbumId":172,"Title":"Diary of a Madman (Remastered)","ArtistId":114}
{"AlbumId":173,"Title":"No More Tears (Remastered)","ArtistId":114}
{"AlbumId":174,"Title":"Tribute","ArtistId":114}
{"AlbumId":175,"Title":"Walking Into Clarksdale","ArtistId":115}
{"AlbumId":176,"Title":"Original Soundtracks 1","ArtistId":116}
{"AlbumId":177,"Title":"The Beast Live","ArtistId":117}
{"AlbumId":178,"Title":"Live On Two Legs [Live]","ArtistId":118}
{"AlbumId":179,"Title":"Pearl Jam","ArtistId":118}
{"AlbumId":180,"Title":"Riot Act","ArtistId":118}
{"AlbumId":181,"Title":"Ten","ArtistId":118}
{"AlbumId":182,"Title":"Vs.","ArtistId":118}
{"AlbumId":183,"Title":"Dark Side Of The Moon","ArtistId":120}
{"AlbumId":184,"Title":"Os Căes Ladram Mas A Caravana Năo Pára","ArtistId":121}
{"AlbumId":185,"Title":"Greatest Hits I","ArtistId":51}
{"AlbumId":186,"Title":"News Of The World","ArtistId":51}
{"AlbumId":187,"Title":"Out Of Time","ArtistId":122}
{"AlbumId":188,"Title":"Green","ArtistId":124}
{"AlbumId":189,"Title":"New Adventures In Hi-Fi","ArtistId":124}
{"AlbumId":190,"Title":"The Best Of R.E.M.: The IRS Years","ArtistId":124}
{"AlbumId":191,"Title":"Cesta Básica","ArtistId":125}
{"AlbumId":192,"Title":"Raul Seixas","ArtistId":126}
{"AlbumId":193,"Title":"Blood Sugar Sex Magik","ArtistId":127}
{"AlbumId":194,"Title":"By The Way","ArtistId":127}
{"AlbumId":195,"Title":"Californication","ArtistId":127}
{"AlbumId":196,"Title":"Retrospective I (1974-1980)","ArtistId":128}
{"AlbumId":197,"Title":"Santana - As Years Go By","ArtistId":59}
{"AlbumId":198,"Title":"Santana Live","ArtistId":59}
{"AlbumId":199,"Title":"Maquinarama","ArtistId":130}
{"AlbumId":200,"Title":"O Samba Poconé","ArtistId":130}
{"AlbumId":201,"Title":"Judas 0: B-Sides and Rarities","ArtistId":131}
{"AlbumId":202,"Title":"Rotten Apples: Greatest Hits","ArtistId":131}
{"AlbumId":203,"Title":"A-Sides","ArtistId":132}
{"AlbumId":204,"Title":"Morning Dance","ArtistId":53}
{"AlbumId":205,"Title":"In Step","ArtistId":133}
{"AlbumId":206,"Title":"Core","ArtistId":134}
{"AlbumId":207,"Title":"Mezmerize","ArtistId":135}
{"AlbumId":208,"Title":"[1997] Black Light Syndrome","ArtistId":136}
{"AlbumId":209,"Title":"Live [Disc 1]","ArtistId":137}
{"AlbumId":210,"Title":"Live [Disc 2]","ArtistId":137}
{"AlbumId":211,"Title":"The Singles","ArtistId":138}
{"AlbumId":212,"Title":"Beyond Good And Evil","ArtistId":139}
{"AlbumId":213,"Title":"Pure Cult: The Best Of The Cult (For Rockers, Ravers, Lovers & Sinners) [UK]","ArtistId":139}
{"AlbumId":214,"Title":"The Doors","ArtistId":140}
{"AlbumId":215,"Title":"The Police Greatest Hits","ArtistId":141}
{"AlbumId":216,"Title":"Hot Rocks, 1964-1971 (Disc 1)","ArtistId":142}
{"AlbumId":217,"Title":"No Security","ArtistId":142}
{"AlbumId":218,"Title":"Voodoo Lounge","ArtistId":142}
{"AlbumId":219,"Title":"Tangents","ArtistId":143}
{"AlbumId":220,"Title":"Transmission","ArtistId":143}
{"AlbumId":221,"Title":"My Generation - The Very Best Of The Who","ArtistId":144}
{"AlbumId":222,"Title":"Serie Sem Limite (Disc 1)","ArtistId":145}
{"AlbumId":223,"Title":"Serie Sem Limite (Disc 2)","ArtistId":145}
{"AlbumId":224,"Title":"Acústico","ArtistId":146}
{"AlbumId":225,"Title":"Volume Dois","ArtistId":146}
{"AlbumId":226,"Title":"Battlestar Galactica: The Story So Far","ArtistId":147}
{"AlbumId":227,"Title":"Battlestar Galactica, Season 3","ArtistId":147}
{"AlbumId":228,"Title":"Heroes, Season 1","ArtistId":148}
{"AlbumId":229,"Title":"Lost, Season 3","ArtistId":149}
{"AlbumId":230,"Title":"Lost, Season 1","ArtistId":149}
{"AlbumId":231,"Title":"Lost, Season 2","ArtistId":149}
{"AlbumId":232,"Title":"Achtung Baby","ArtistId":150}
{"AlbumId":233,"Title":"All That You Can't Leave Behind","ArtistId":150}
{"AlbumId":234,"Title":"B-Sides 1980-1990","ArtistId":150}
{"AlbumId":235,"Title":"How To Dismantle An Atomic Bomb","ArtistId":150}
{"AlbumId":236,"Title":"Pop","ArtistId":150}
{"AlbumId":237,"Title":"Rattle And Hum","ArtistId":150}
{"AlbumId":238,"Title":"The Best Of 1980-1990","ArtistId":150}
{"AlbumId":239,"Title":"War","ArtistId":150}
{"AlbumId":240,"Title":"Zooropa","ArtistId":150}
{"AlbumId":241,"Title":"UB40 The Best Of - Volume Two [UK]","ArtistId":151}
{"AlbumId":242,"Title":"Diver Down","ArtistId":152}
{"AlbumId":243,"Title":"The Best Of Van Halen, Vol. I","ArtistId":152}
{"AlbumId":244,"Title":"Van Halen","ArtistId":152}
{"AlbumId":245,"Title":"Van Halen III","ArtistId":152}
{"AlbumId":246,"Title":"Contraband","ArtistId":153}
{"AlbumId":247,"Title":"Vinicius De Moraes","ArtistId":72}
{"AlbumId":248,"Title":"Ao Vivo [IMPORT]","ArtistId":155}
{"AlbumId":249,"Title":"The Office, Season 1","ArtistId":156}
{"AlbumId":250,"Title":"The Office, Season 2","ArtistId":156}
{"AlbumId":251,"Title":"The Office, Season 3","ArtistId":156}
{"AlbumId":252,"Title":"Un-Led-Ed","ArtistId":157}
{"AlbumId":253,"Title":"Battlestar Galactica (Classic), Season 1","ArtistId":158}
{"AlbumId":254,"Title":"Aquaman","ArtistId":159}
{"AlbumId":255,"Title":"Instant Karma: The Amnesty International Campaign to Save Darfur","ArtistId":150}
{"AlbumId":256,"Title":"Speak of the Devil","ArtistId":114}
{"AlbumId":257,"Title":"20th Century Masters - The Millennium Collection: The Best of Scorpions","ArtistId":179}
{"AlbumId":258,"Title":"House of Pain","ArtistId":180}
{"AlbumId":259,"Title":"Radio Brasil (O Som da Jovem Vanguarda) - Seleccao de Henrique Amaro","ArtistId":36}
{"AlbumId":260,"Title":"Cake: B-Sides and Rarities","ArtistId":196}
{"AlbumId":261,"Title":"LOST, Season 4","ArtistId":149}
{"AlbumId":262,"Title":"Quiet Songs","ArtistId":197}
{"AlbumId":263,"Title":"Muso Ko","ArtistId":198}
{"AlbumId":264,"Title":"Realize","ArtistId":199}
{"AlbumId":265,"Title":"Every Kind of Light","ArtistId":200}
{"AlbumId":266,"Title":"Duos II","ArtistId":201}
{"AlbumId":267,"Title":"Worlds","ArtistId":202}
{"AlbumId":268,"Title":"The Best of Beethoven","ArtistId":203}
{"AlbumId":269,"Title":"Temple of the Dog","ArtistId":204}
{"AlbumId":270,"Title":"Carry On","ArtistId":205}
{"AlbumId":271,"Title":"Revelations","ArtistId":8}
{"AlbumId":272,"Title":"Adorate Deum: Gregorian Chant from the Proper of the Mass","ArtistId":206}
{"AlbumId":273,"Title":"Allegri: Miserere","ArtistId":207}
{"AlbumId":274,"Title":"Pachelbel: Canon & Gigue","ArtistId":208}
{"AlbumId":275,"Title":"Vivaldi: The Four Seasons","ArtistId":209}
{"AlbumId":276,"Title":"Bach: Violin Concertos","ArtistId":210}
{"AlbumId":277,"Title":"Bach: Goldberg Variations","ArtistId":211}
{"AlbumId":278,"Title":"Bach: The Cello Suites","ArtistId":212}
{"AlbumId":279,"Title":"Handel: The Messiah (Highlights)","ArtistId":213}
{"AlbumId":280,"Title":"The World of Classical Favourites","ArtistId":214}
{"AlbumId":281,"Title":"Sir Neville Marriner: A Celebration","ArtistId":215}
{"AlbumId":282,"Title":"Mozart: Wind Concertos","ArtistId":216}
{"AlbumId":283,"Title":"Haydn: Symphonies 99 - 104","ArtistId":217}
{"AlbumId":284,"Title":"Beethoven: Symhonies Nos. 5 & 6","ArtistId":218}
{"AlbumId":285,"Title":"A Soprano Inspired","ArtistId":219}
{"AlbumId":286,"Title":"Great Opera Choruses","ArtistId":220}
{"AlbumId":287,"Title":"Wagner: Favourite Overtures","ArtistId":221}
{"AlbumId":288,"Title":"Fauré: Requiem, Ravel: Pavane & Others","ArtistId":222}
{"AlbumId":289,"Title":"Tchaikovsky: The Nutcracker","ArtistId":223}
{"AlbumId":290,"Title":"The Last Night of the Proms","ArtistId":224}
{"AlbumId":291,"Title":"Puccini: Madama Butterfly - Highlights","ArtistId":225}
{"AlbumId":292,"Title":"Holst: The Planets, Op. 32 & Vaughan Williams: Fantasies","ArtistId":226}
{"AlbumId":293,"Title":"Pavarotti's Opera Made Easy","ArtistId":227}
{"AlbumId":294,"Title":"Great Performances - Barber's Adagio and Other Romantic Favorites for Strings","ArtistId":228}
{"AlbumId":295,"Title":"Carmina Burana","ArtistId":229}
{"AlbumId":296,"Title":"A Copland Celebration, Vol. I","ArtistId":230}
{"AlbumId":297,"Title":"Bach: Toccata & Fugue in D Minor","ArtistId":231}
{"AlbumId":298,"Title":"Prokofiev: Symphony No.1","ArtistId":232}
{"AlbumId":299,"Title":"Scheherazade","ArtistId":233}
{"AlbumId":300,"Title":"Bach: The Brandenburg Concertos","ArtistId":234}
{"AlbumId":301,"Title":"Chopin: Piano Concertos Nos. 1 & 2","ArtistId":235}
{"AlbumId":302,"Title":"Mascagni: Cavalleria Rusticana","ArtistId":236}
{"AlbumId":303,"Title":"Sibelius: Finlandia","ArtistId":237}
{"AlbumId":304,"Title":"Beethoven Piano Sonatas: Moonlight & Pastorale","ArtistId":238}
{"AlbumId":305,"Title":"Great Recordings of the Century - Mahler: Das Lied von der Erde","ArtistId":240}
{"AlbumId":306,"Title":"Elgar: Cello Concerto & Vaughan Williams: Fantasias","ArtistId":241}
{"AlbumId":307,"Title":"Adams, John: The Chairman Dances","ArtistId":242}
{"AlbumId":308,"Title":"Tchaikovsky: 1812 Festival Overture, Op.49, Capriccio Italien & Beethoven: Wellington's Victory","ArtistId":243}
{"AlbumId":309,"Title":"Palestrina: Missa Papae Marcelli & Allegri: Miserere","ArtistId":244}
{"AlbumId":310,"Title":"Prokofiev: Romeo & Juliet","ArtistId":245}
{"AlbumId":311,"Title":"Strauss: Waltzes","ArtistId":226}
{"AlbumId":312,"Title":"Berlioz: Symphonie Fantastique","ArtistId":245}
{"AlbumId":313,"Title":"Bizet: Carmen Highlights","ArtistId":246}
{"AlbumId":314,"Title":"English Renaissance","ArtistId":247}
{"AlbumId":315,"Title":"Handel: Music for the Royal Fireworks (Original Version 1749)","ArtistId":208}
{"AlbumId":316,"Title":"Grieg: Peer Gynt Suites & Sibelius: Pelléas et Mélisande","ArtistId":248}
{"AlbumId":317,"Title":"Mozart Gala: Famous Arias","ArtistId":249}
{"AlbumId":318,"Title":"SCRIABIN: Vers la flamme","ArtistId":250}
{"AlbumId":319,"Title":"Armada: Music from the Courts of England and Spain","ArtistId":251}
{"AlbumId":320,"Title":"Mozart: Symphonies Nos. 40 & 41","ArtistId":248}
{"AlbumId":321,"Title":"Back to Black","ArtistId":252}
{"AlbumId":322,"Title":"Frank","ArtistId":252}
{"AlbumId":323,"Title":"Carried to Dust (Bonus Track Version)","ArtistId":253}
{"AlbumId":324,"Title":"Beethoven: Symphony No. 6 'Pastoral' Etc.","ArtistId":254}
{"AlbumId":325,"Title":"Bartok: Violin & Viola Concertos","ArtistId":255}
{"AlbumId":326,"Title":"Mendelssohn: A Midsummer Night's Dream","ArtistId":256}
{"AlbumId":327,"Title":"Bach: Orchestral Suites Nos. 1 - 4","ArtistId":257}
{"AlbumId":328,"Title":"Charpentier: Divertissements, Airs & Concerts","ArtistId":258}
{"AlbumId":329,"Title":"South American Getaway","ArtistId":259}
{"AlbumId":330,"Title":"Górecki: Symphony No. 3","ArtistId":260}
{"AlbumId":331,"Title":"Purcell: The Fairy Queen","ArtistId":261}
{"AlbumId":332,"Title":"The Ultimate Relexation Album","ArtistId":262}
{"AlbumId":333,"Title":"Purcell: Music for the Queen Mary","ArtistId":263}
{"AlbumId":334,"Title":"Weill: The Seven Deadly Sins","ArtistId":264}
{"AlbumId":335,"Title":"J.S. Bach: Chaconne, Suite in E Minor, Partita in E Major & Prelude, Fugue and Allegro","ArtistId":265}
{"AlbumId":336,"Title":"Prokofiev: Symphony No.5 & Stravinksy: Le Sacre Du Printemps","ArtistId":248}
{"AlbumId":337,"Title":"Szymanowski: Piano Works, Vol. 1","ArtistId":266}
{"AlbumId":338,"Title":"Nielsen: The Six Symphonies","ArtistId":267}
{"AlbumId":339,"Title":"Great Recordings of the Century: Paganini's 24 Caprices","ArtistId":268}
{"AlbumId":340,"Title":"Liszt - 12 Études D'Execution Transcendante","ArtistId":269}
{"AlbumId":341,"Title":"Great Recordings of the Century - Shubert: Schwanengesang, 4 Lieder","ArtistId":270}
{"AlbumId":342,"Title":"Locatelli: Concertos for Violin, Strings and Continuo, Vol. 3","ArtistId":271}
{"AlbumId":343,"Title":"Respighi:Pines of Rome","ArtistId":226}
{"AlbumId":344,"Title":"Schubert: The Late String Quartets & String Quintet (3 CD's)","ArtistId":272}
{"AlbumId":345,"Title":"Monteverdi: L'Orfeo","ArtistId":273}
{"AlbumId":346,"Title":"Mozart: Chamber Music","ArtistId":274}
{"AlbumId":347,"Title":"Koyaanisqatsi (Soundtrack from the Motion Picture)","ArtistId":275}
+275
View File
@@ -0,0 +1,275 @@
{"ArtistId":1,"Name":"AC/DC"}
{"ArtistId":2,"Name":"Accept"}
{"ArtistId":3,"Name":"Aerosmith"}
{"ArtistId":4,"Name":"Alanis Morissette"}
{"ArtistId":5,"Name":"Alice In Chains"}
{"ArtistId":6,"Name":"Antônio Carlos Jobim"}
{"ArtistId":7,"Name":"Apocalyptica"}
{"ArtistId":8,"Name":"Audioslave"}
{"ArtistId":9,"Name":"BackBeat"}
{"ArtistId":10,"Name":"Billy Cobham"}
{"ArtistId":11,"Name":"Black Label Society"}
{"ArtistId":12,"Name":"Black Sabbath"}
{"ArtistId":13,"Name":"Body Count"}
{"ArtistId":14,"Name":"Bruce Dickinson"}
{"ArtistId":15,"Name":"Buddy Guy"}
{"ArtistId":16,"Name":"Caetano Veloso"}
{"ArtistId":17,"Name":"Chico Buarque"}
{"ArtistId":18,"Name":"Chico Science & Naçăo Zumbi"}
{"ArtistId":19,"Name":"Cidade Negra"}
{"ArtistId":20,"Name":"Cláudio Zoli"}
{"ArtistId":21,"Name":"Various Artists"}
{"ArtistId":22,"Name":"Led Zeppelin"}
{"ArtistId":23,"Name":"Frank Zappa & Captain Beefheart"}
{"ArtistId":24,"Name":"Marcos Valle"}
{"ArtistId":25,"Name":"Milton Nascimento & Bebeto"}
{"ArtistId":26,"Name":"Azymuth"}
{"ArtistId":27,"Name":"Gilberto Gil"}
{"ArtistId":28,"Name":"Joăo Gilberto"}
{"ArtistId":29,"Name":"Bebel Gilberto"}
{"ArtistId":30,"Name":"Jorge Vercilo"}
{"ArtistId":31,"Name":"Baby Consuelo"}
{"ArtistId":32,"Name":"Ney Matogrosso"}
{"ArtistId":33,"Name":"Luiz Melodia"}
{"ArtistId":34,"Name":"Nando Reis"}
{"ArtistId":35,"Name":"Pedro Luís & A Parede"}
{"ArtistId":36,"Name":"O Rappa"}
{"ArtistId":37,"Name":"Ed Motta"}
{"ArtistId":38,"Name":"Banda Black Rio"}
{"ArtistId":39,"Name":"Fernanda Porto"}
{"ArtistId":40,"Name":"Os Cariocas"}
{"ArtistId":41,"Name":"Elis Regina"}
{"ArtistId":42,"Name":"Milton Nascimento"}
{"ArtistId":43,"Name":"A Cor Do Som"}
{"ArtistId":44,"Name":"Kid Abelha"}
{"ArtistId":45,"Name":"Sandra De Sá"}
{"ArtistId":46,"Name":"Jorge Ben"}
{"ArtistId":47,"Name":"Hermeto Pascoal"}
{"ArtistId":48,"Name":"Barăo Vermelho"}
{"ArtistId":49,"Name":"Edson, DJ Marky & DJ Patife Featuring Fernanda Porto"}
{"ArtistId":50,"Name":"Metallica"}
{"ArtistId":51,"Name":"Queen"}
{"ArtistId":52,"Name":"Kiss"}
{"ArtistId":53,"Name":"Spyro Gyra"}
{"ArtistId":54,"Name":"Green Day"}
{"ArtistId":55,"Name":"David Coverdale"}
{"ArtistId":56,"Name":"Gonzaguinha"}
{"ArtistId":57,"Name":"Os Mutantes"}
{"ArtistId":58,"Name":"Deep Purple"}
{"ArtistId":59,"Name":"Santana"}
{"ArtistId":60,"Name":"Santana Feat. Dave Matthews"}
{"ArtistId":61,"Name":"Santana Feat. Everlast"}
{"ArtistId":62,"Name":"Santana Feat. Rob Thomas"}
{"ArtistId":63,"Name":"Santana Feat. Lauryn Hill & Cee-Lo"}
{"ArtistId":64,"Name":"Santana Feat. The Project G&B"}
{"ArtistId":65,"Name":"Santana Feat. Maná"}
{"ArtistId":66,"Name":"Santana Feat. Eagle-Eye Cherry"}
{"ArtistId":67,"Name":"Santana Feat. Eric Clapton"}
{"ArtistId":68,"Name":"Miles Davis"}
{"ArtistId":69,"Name":"Gene Krupa"}
{"ArtistId":70,"Name":"Toquinho & Vinícius"}
{"ArtistId":71,"Name":"Vinícius De Moraes & Baden Powell"}
{"ArtistId":72,"Name":"Vinícius De Moraes"}
{"ArtistId":73,"Name":"Vinícius E Qurteto Em Cy"}
{"ArtistId":74,"Name":"Vinícius E Odette Lara"}
{"ArtistId":75,"Name":"Vinicius, Toquinho & Quarteto Em Cy"}
{"ArtistId":76,"Name":"Creedence Clearwater Revival"}
{"ArtistId":77,"Name":"Cássia Eller"}
{"ArtistId":78,"Name":"Def Leppard"}
{"ArtistId":79,"Name":"Dennis Chambers"}
{"ArtistId":80,"Name":"Djavan"}
{"ArtistId":81,"Name":"Eric Clapton"}
{"ArtistId":82,"Name":"Faith No More"}
{"ArtistId":83,"Name":"Falamansa"}
{"ArtistId":84,"Name":"Foo Fighters"}
{"ArtistId":85,"Name":"Frank Sinatra"}
{"ArtistId":86,"Name":"Funk Como Le Gusta"}
{"ArtistId":87,"Name":"Godsmack"}
{"ArtistId":88,"Name":"Guns N' Roses"}
{"ArtistId":89,"Name":"Incognito"}
{"ArtistId":90,"Name":"Iron Maiden"}
{"ArtistId":91,"Name":"James Brown"}
{"ArtistId":92,"Name":"Jamiroquai"}
{"ArtistId":93,"Name":"JET"}
{"ArtistId":94,"Name":"Jimi Hendrix"}
{"ArtistId":95,"Name":"Joe Satriani"}
{"ArtistId":96,"Name":"Jota Quest"}
{"ArtistId":97,"Name":"Joăo Suplicy"}
{"ArtistId":98,"Name":"Judas Priest"}
{"ArtistId":99,"Name":"Legiăo Urbana"}
{"ArtistId":100,"Name":"Lenny Kravitz"}
{"ArtistId":101,"Name":"Lulu Santos"}
{"ArtistId":102,"Name":"Marillion"}
{"ArtistId":103,"Name":"Marisa Monte"}
{"ArtistId":104,"Name":"Marvin Gaye"}
{"ArtistId":105,"Name":"Men At Work"}
{"ArtistId":106,"Name":"Motörhead"}
{"ArtistId":107,"Name":"Motörhead & Girlschool"}
{"ArtistId":108,"Name":"Mônica Marianno"}
{"ArtistId":109,"Name":"Mötley Crüe"}
{"ArtistId":110,"Name":"Nirvana"}
{"ArtistId":111,"Name":"O Terço"}
{"ArtistId":112,"Name":"Olodum"}
{"ArtistId":113,"Name":"Os Paralamas Do Sucesso"}
{"ArtistId":114,"Name":"Ozzy Osbourne"}
{"ArtistId":115,"Name":"Page & Plant"}
{"ArtistId":116,"Name":"Passengers"}
{"ArtistId":117,"Name":"Paul D'Ianno"}
{"ArtistId":118,"Name":"Pearl Jam"}
{"ArtistId":119,"Name":"Peter Tosh"}
{"ArtistId":120,"Name":"Pink Floyd"}
{"ArtistId":121,"Name":"Planet Hemp"}
{"ArtistId":122,"Name":"R.E.M. Feat. Kate Pearson"}
{"ArtistId":123,"Name":"R.E.M. Feat. KRS-One"}
{"ArtistId":124,"Name":"R.E.M."}
{"ArtistId":125,"Name":"Raimundos"}
{"ArtistId":126,"Name":"Raul Seixas"}
{"ArtistId":127,"Name":"Red Hot Chili Peppers"}
{"ArtistId":128,"Name":"Rush"}
{"ArtistId":129,"Name":"Simply Red"}
{"ArtistId":130,"Name":"Skank"}
{"ArtistId":131,"Name":"Smashing Pumpkins"}
{"ArtistId":132,"Name":"Soundgarden"}
{"ArtistId":133,"Name":"Stevie Ray Vaughan & Double Trouble"}
{"ArtistId":134,"Name":"Stone Temple Pilots"}
{"ArtistId":135,"Name":"System Of A Down"}
{"ArtistId":136,"Name":"Terry Bozzio, Tony Levin & Steve Stevens"}
{"ArtistId":137,"Name":"The Black Crowes"}
{"ArtistId":138,"Name":"The Clash"}
{"ArtistId":139,"Name":"The Cult"}
{"ArtistId":140,"Name":"The Doors"}
{"ArtistId":141,"Name":"The Police"}
{"ArtistId":142,"Name":"The Rolling Stones"}
{"ArtistId":143,"Name":"The Tea Party"}
{"ArtistId":144,"Name":"The Who"}
{"ArtistId":145,"Name":"Tim Maia"}
{"ArtistId":146,"Name":"Tităs"}
{"ArtistId":147,"Name":"Battlestar Galactica"}
{"ArtistId":148,"Name":"Heroes"}
{"ArtistId":149,"Name":"Lost"}
{"ArtistId":150,"Name":"U2"}
{"ArtistId":151,"Name":"UB40"}
{"ArtistId":152,"Name":"Van Halen"}
{"ArtistId":153,"Name":"Velvet Revolver"}
{"ArtistId":154,"Name":"Whitesnake"}
{"ArtistId":155,"Name":"Zeca Pagodinho"}
{"ArtistId":156,"Name":"The Office"}
{"ArtistId":157,"Name":"Dread Zeppelin"}
{"ArtistId":158,"Name":"Battlestar Galactica (Classic)"}
{"ArtistId":159,"Name":"Aquaman"}
{"ArtistId":160,"Name":"Christina Aguilera featuring BigElf"}
{"ArtistId":161,"Name":"Aerosmith & Sierra Leone's Refugee Allstars"}
{"ArtistId":162,"Name":"Los Lonely Boys"}
{"ArtistId":163,"Name":"Corinne Bailey Rae"}
{"ArtistId":164,"Name":"Dhani Harrison & Jakob Dylan"}
{"ArtistId":165,"Name":"Jackson Browne"}
{"ArtistId":166,"Name":"Avril Lavigne"}
{"ArtistId":167,"Name":"Big & Rich"}
{"ArtistId":168,"Name":"Youssou N'Dour"}
{"ArtistId":169,"Name":"Black Eyed Peas"}
{"ArtistId":170,"Name":"Jack Johnson"}
{"ArtistId":171,"Name":"Ben Harper"}
{"ArtistId":172,"Name":"Snow Patrol"}
{"ArtistId":173,"Name":"Matisyahu"}
{"ArtistId":174,"Name":"The Postal Service"}
{"ArtistId":175,"Name":"Jaguares"}
{"ArtistId":176,"Name":"The Flaming Lips"}
{"ArtistId":177,"Name":"Jack's Mannequin & Mick Fleetwood"}
{"ArtistId":178,"Name":"Regina Spektor"}
{"ArtistId":179,"Name":"Scorpions"}
{"ArtistId":180,"Name":"House Of Pain"}
{"ArtistId":181,"Name":"Xis"}
{"ArtistId":182,"Name":"Nega Gizza"}
{"ArtistId":183,"Name":"Gustavo & Andres Veiga & Salazar"}
{"ArtistId":184,"Name":"Rodox"}
{"ArtistId":185,"Name":"Charlie Brown Jr."}
{"ArtistId":186,"Name":"Pedro Luís E A Parede"}
{"ArtistId":187,"Name":"Los Hermanos"}
{"ArtistId":188,"Name":"Mundo Livre S/A"}
{"ArtistId":189,"Name":"Otto"}
{"ArtistId":190,"Name":"Instituto"}
{"ArtistId":191,"Name":"Naçăo Zumbi"}
{"ArtistId":192,"Name":"DJ Dolores & Orchestra Santa Massa"}
{"ArtistId":193,"Name":"Seu Jorge"}
{"ArtistId":194,"Name":"Sabotage E Instituto"}
{"ArtistId":195,"Name":"Stereo Maracana"}
{"ArtistId":196,"Name":"Cake"}
{"ArtistId":197,"Name":"Aisha Duo"}
{"ArtistId":198,"Name":"Habib Koité and Bamada"}
{"ArtistId":199,"Name":"Karsh Kale"}
{"ArtistId":200,"Name":"The Posies"}
{"ArtistId":201,"Name":"Luciana Souza/Romero Lubambo"}
{"ArtistId":202,"Name":"Aaron Goldberg"}
{"ArtistId":203,"Name":"Nicolaus Esterhazy Sinfonia"}
{"ArtistId":204,"Name":"Temple of the Dog"}
{"ArtistId":205,"Name":"Chris Cornell"}
{"ArtistId":206,"Name":"Alberto Turco & Nova Schola Gregoriana"}
{"ArtistId":207,"Name":"Richard Marlow & The Choir of Trinity College, Cambridge"}
{"ArtistId":208,"Name":"English Concert & Trevor Pinnock"}
{"ArtistId":209,"Name":"Anne-Sophie Mutter, Herbert Von Karajan & Wiener Philharmoniker"}
{"ArtistId":210,"Name":"Hilary Hahn, Jeffrey Kahane, Los Angeles Chamber Orchestra & Margaret Batjer"}
{"ArtistId":211,"Name":"Wilhelm Kempff"}
{"ArtistId":212,"Name":"Yo-Yo Ma"}
{"ArtistId":213,"Name":"Scholars Baroque Ensemble"}
{"ArtistId":214,"Name":"Academy of St. Martin in the Fields & Sir Neville Marriner"}
{"ArtistId":215,"Name":"Academy of St. Martin in the Fields Chamber Ensemble & Sir Neville Marriner"}
{"ArtistId":216,"Name":"Berliner Philharmoniker, Claudio Abbado & Sabine Meyer"}
{"ArtistId":217,"Name":"Royal Philharmonic Orchestra & Sir Thomas Beecham"}
{"ArtistId":218,"Name":"Orchestre Révolutionnaire et Romantique & John Eliot Gardiner"}
{"ArtistId":219,"Name":"Britten Sinfonia, Ivor Bolton & Lesley Garrett"}
{"ArtistId":220,"Name":"Chicago Symphony Chorus, Chicago Symphony Orchestra & Sir Georg Solti"}
{"ArtistId":221,"Name":"Sir Georg Solti & Wiener Philharmoniker"}
{"ArtistId":222,"Name":"Academy of St. Martin in the Fields, John Birch, Sir Neville Marriner & Sylvia McNair"}
{"ArtistId":223,"Name":"London Symphony Orchestra & Sir Charles Mackerras"}
{"ArtistId":224,"Name":"Barry Wordsworth & BBC Concert Orchestra"}
{"ArtistId":225,"Name":"Herbert Von Karajan, Mirella Freni & Wiener Philharmoniker"}
{"ArtistId":226,"Name":"Eugene Ormandy"}
{"ArtistId":227,"Name":"Luciano Pavarotti"}
{"ArtistId":228,"Name":"Leonard Bernstein & New York Philharmonic"}
{"ArtistId":229,"Name":"Boston Symphony Orchestra & Seiji Ozawa"}
{"ArtistId":230,"Name":"Aaron Copland & London Symphony Orchestra"}
{"ArtistId":231,"Name":"Ton Koopman"}
{"ArtistId":232,"Name":"Sergei Prokofiev & Yuri Temirkanov"}
{"ArtistId":233,"Name":"Chicago Symphony Orchestra & Fritz Reiner"}
{"ArtistId":234,"Name":"Orchestra of The Age of Enlightenment"}
{"ArtistId":235,"Name":"Emanuel Ax, Eugene Ormandy & Philadelphia Orchestra"}
{"ArtistId":236,"Name":"James Levine"}
{"ArtistId":237,"Name":"Berliner Philharmoniker & Hans Rosbaud"}
{"ArtistId":238,"Name":"Maurizio Pollini"}
{"ArtistId":239,"Name":"Academy of St. Martin in the Fields, Sir Neville Marriner & William Bennett"}
{"ArtistId":240,"Name":"Gustav Mahler"}
{"ArtistId":241,"Name":"Felix Schmidt, London Symphony Orchestra & Rafael Frühbeck de Burgos"}
{"ArtistId":242,"Name":"Edo de Waart & San Francisco Symphony"}
{"ArtistId":243,"Name":"Antal Doráti & London Symphony Orchestra"}
{"ArtistId":244,"Name":"Choir Of Westminster Abbey & Simon Preston"}
{"ArtistId":245,"Name":"Michael Tilson Thomas & San Francisco Symphony"}
{"ArtistId":246,"Name":"Chor der Wiener Staatsoper, Herbert Von Karajan & Wiener Philharmoniker"}
{"ArtistId":247,"Name":"The King's Singers"}
{"ArtistId":248,"Name":"Berliner Philharmoniker & Herbert Von Karajan"}
{"ArtistId":249,"Name":"Sir Georg Solti, Sumi Jo & Wiener Philharmoniker"}
{"ArtistId":250,"Name":"Christopher O'Riley"}
{"ArtistId":251,"Name":"Fretwork"}
{"ArtistId":252,"Name":"Amy Winehouse"}
{"ArtistId":253,"Name":"Calexico"}
{"ArtistId":254,"Name":"Otto Klemperer & Philharmonia Orchestra"}
{"ArtistId":255,"Name":"Yehudi Menuhin"}
{"ArtistId":256,"Name":"Philharmonia Orchestra & Sir Neville Marriner"}
{"ArtistId":257,"Name":"Academy of St. Martin in the Fields, Sir Neville Marriner & Thurston Dart"}
{"ArtistId":258,"Name":"Les Arts Florissants & William Christie"}
{"ArtistId":259,"Name":"The 12 Cellists of The Berlin Philharmonic"}
{"ArtistId":260,"Name":"Adrian Leaper & Doreen de Feis"}
{"ArtistId":261,"Name":"Roger Norrington, London Classical Players"}
{"ArtistId":262,"Name":"Charles Dutoit & L'Orchestre Symphonique de Montréal"}
{"ArtistId":263,"Name":"Equale Brass Ensemble, John Eliot Gardiner & Munich Monteverdi Orchestra and Choir"}
{"ArtistId":264,"Name":"Kent Nagano and Orchestre de l'Opéra de Lyon"}
{"ArtistId":265,"Name":"Julian Bream"}
{"ArtistId":266,"Name":"Martin Roscoe"}
{"ArtistId":267,"Name":"Göteborgs Symfoniker & Neeme Järvi"}
{"ArtistId":268,"Name":"Itzhak Perlman"}
{"ArtistId":269,"Name":"Michele Campanella"}
{"ArtistId":270,"Name":"Gerald Moore"}
{"ArtistId":271,"Name":"Mela Tenenbaum, Pro Musica Prague & Richard Kapp"}
{"ArtistId":272,"Name":"Emerson String Quartet"}
{"ArtistId":273,"Name":"C. Monteverdi, Nigel Rogers - Chiaroscuro; London Baroque; London Cornett & Sackbu"}
{"ArtistId":274,"Name":"Nash Ensemble"}
{"ArtistId":275,"Name":"Philip Glass Ensemble"}
@@ -0,0 +1,59 @@
{"CustomerId":1,"FirstName":"Luís","LastName":"Gonçalves","Company":"Embraer - Empresa Brasileira de Aeronáutica S.A.","Address":"Av. Brigadeiro Faria Lima, 2170","City":"Săo José dos Campos","State":"SP","Country":"Brazil","PostalCode":"12227-000","Phone":"+55 (12) 3923-5555","Fax":"+55 (12) 3923-5566","Email":"luisg@embraer.com.br","SupportRepId":3}
{"CustomerId":2,"FirstName":"Leonie","LastName":"Köhler","Company":null,"Address":"Theodor-Heuss-Straße 34","City":"Stuttgart","State":null,"Country":"Germany","PostalCode":"70174","Phone":"+49 0711 2842222","Fax":null,"Email":"leonekohler@surfeu.de","SupportRepId":5}
{"CustomerId":3,"FirstName":"François","LastName":"Tremblay","Company":null,"Address":"1498 rue Bélanger","City":"Montréal","State":"QC","Country":"Canada","PostalCode":"H2G 1A7","Phone":"+1 (514) 721-4711","Fax":null,"Email":"ftremblay@gmail.com","SupportRepId":3}
{"CustomerId":4,"FirstName":"Bjřrn","LastName":"Hansen","Company":null,"Address":"Ullevĺlsveien 14","City":"Oslo","State":null,"Country":"Norway","PostalCode":"0171","Phone":"+47 22 44 22 22","Fax":null,"Email":"bjorn.hansen@yahoo.no","SupportRepId":4}
{"CustomerId":5,"FirstName":"František","LastName":"Wichterlová","Company":"JetBrains s.r.o.","Address":"Klanova 9/506","City":"Prague","State":null,"Country":"Czech Republic","PostalCode":"14700","Phone":"+420 2 4172 5555","Fax":"+420 2 4172 5555","Email":"frantisekw@jetbrains.com","SupportRepId":4}
{"CustomerId":6,"FirstName":"Helena","LastName":"Holý","Company":null,"Address":"Rilská 3174/6","City":"Prague","State":null,"Country":"Czech Republic","PostalCode":"14300","Phone":"+420 2 4177 0449","Fax":null,"Email":"hholy@gmail.com","SupportRepId":5}
{"CustomerId":7,"FirstName":"Astrid","LastName":"Gruber","Company":null,"Address":"Rotenturmstraße 4, 1010 Innere Stadt","City":"Vienne","State":null,"Country":"Austria","PostalCode":"1010","Phone":"+43 01 5134505","Fax":null,"Email":"astrid.gruber@apple.at","SupportRepId":5}
{"CustomerId":8,"FirstName":"Daan","LastName":"Peeters","Company":null,"Address":"Grétrystraat 63","City":"Brussels","State":null,"Country":"Belgium","PostalCode":"1000","Phone":"+32 02 219 03 03","Fax":null,"Email":"daan_peeters@apple.be","SupportRepId":4}
{"CustomerId":9,"FirstName":"Kara","LastName":"Nielsen","Company":null,"Address":"Sřnder Boulevard 51","City":"Copenhagen","State":null,"Country":"Denmark","PostalCode":"1720","Phone":"+453 3331 9991","Fax":null,"Email":"kara.nielsen@jubii.dk","SupportRepId":4}
{"CustomerId":10,"FirstName":"Eduardo","LastName":"Martins","Company":"Woodstock Discos","Address":"Rua Dr. Falcăo Filho, 155","City":"Săo Paulo","State":"SP","Country":"Brazil","PostalCode":"01007-010","Phone":"+55 (11) 3033-5446","Fax":"+55 (11) 3033-4564","Email":"eduardo@woodstock.com.br","SupportRepId":4}
{"CustomerId":11,"FirstName":"Alexandre","LastName":"Rocha","Company":"Banco do Brasil S.A.","Address":"Av. Paulista, 2022","City":"Săo Paulo","State":"SP","Country":"Brazil","PostalCode":"01310-200","Phone":"+55 (11) 3055-3278","Fax":"+55 (11) 3055-8131","Email":"alero@uol.com.br","SupportRepId":5}
{"CustomerId":12,"FirstName":"Roberto","LastName":"Almeida","Company":"Riotur","Address":"Praça Pio X, 119","City":"Rio de Janeiro","State":"RJ","Country":"Brazil","PostalCode":"20040-020","Phone":"+55 (21) 2271-7000","Fax":"+55 (21) 2271-7070","Email":"roberto.almeida@riotur.gov.br","SupportRepId":3}
{"CustomerId":13,"FirstName":"Fernanda","LastName":"Ramos","Company":null,"Address":"Qe 7 Bloco G","City":"Brasília","State":"DF","Country":"Brazil","PostalCode":"71020-677","Phone":"+55 (61) 3363-5547","Fax":"+55 (61) 3363-7855","Email":"fernadaramos4@uol.com.br","SupportRepId":4}
{"CustomerId":14,"FirstName":"Mark","LastName":"Philips","Company":"Telus","Address":"8210 111 ST NW","City":"Edmonton","State":"AB","Country":"Canada","PostalCode":"T6G 2C7","Phone":"+1 (780) 434-4554","Fax":"+1 (780) 434-5565","Email":"mphilips12@shaw.ca","SupportRepId":5}
{"CustomerId":15,"FirstName":"Jennifer","LastName":"Peterson","Company":"Rogers Canada","Address":"700 W Pender Street","City":"Vancouver","State":"BC","Country":"Canada","PostalCode":"V6C 1G8","Phone":"+1 (604) 688-2255","Fax":"+1 (604) 688-8756","Email":"jenniferp@rogers.ca","SupportRepId":3}
{"CustomerId":16,"FirstName":"Frank","LastName":"Harris","Company":"Google Inc.","Address":"1600 Amphitheatre Parkway","City":"Mountain View","State":"CA","Country":"USA","PostalCode":"94043-1351","Phone":"+1 (650) 253-0000","Fax":"+1 (650) 253-0000","Email":"fharris@google.com","SupportRepId":4}
{"CustomerId":17,"FirstName":"Jack","LastName":"Smith","Company":"Microsoft Corporation","Address":"1 Microsoft Way","City":"Redmond","State":"WA","Country":"USA","PostalCode":"98052-8300","Phone":"+1 (425) 882-8080","Fax":"+1 (425) 882-8081","Email":"jacksmith@microsoft.com","SupportRepId":5}
{"CustomerId":18,"FirstName":"Michelle","LastName":"Brooks","Company":null,"Address":"627 Broadway","City":"New York","State":"NY","Country":"USA","PostalCode":"10012-2612","Phone":"+1 (212) 221-3546","Fax":"+1 (212) 221-4679","Email":"michelleb@aol.com","SupportRepId":3}
{"CustomerId":19,"FirstName":"Tim","LastName":"Goyer","Company":"Apple Inc.","Address":"1 Infinite Loop","City":"Cupertino","State":"CA","Country":"USA","PostalCode":"95014","Phone":"+1 (408) 996-1010","Fax":"+1 (408) 996-1011","Email":"tgoyer@apple.com","SupportRepId":3}
{"CustomerId":20,"FirstName":"Dan","LastName":"Miller","Company":null,"Address":"541 Del Medio Avenue","City":"Mountain View","State":"CA","Country":"USA","PostalCode":"94040-111","Phone":"+1 (650) 644-3358","Fax":null,"Email":"dmiller@comcast.com","SupportRepId":4}
{"CustomerId":21,"FirstName":"Kathy","LastName":"Chase","Company":null,"Address":"801 W 4th Street","City":"Reno","State":"NV","Country":"USA","PostalCode":"89503","Phone":"+1 (775) 223-7665","Fax":null,"Email":"kachase@hotmail.com","SupportRepId":5}
{"CustomerId":22,"FirstName":"Heather","LastName":"Leacock","Company":null,"Address":"120 S Orange Ave","City":"Orlando","State":"FL","Country":"USA","PostalCode":"32801","Phone":"+1 (407) 999-7788","Fax":null,"Email":"hleacock@gmail.com","SupportRepId":4}
{"CustomerId":23,"FirstName":"John","LastName":"Gordon","Company":null,"Address":"69 Salem Street","City":"Boston","State":"MA","Country":"USA","PostalCode":"2113","Phone":"+1 (617) 522-1333","Fax":null,"Email":"johngordon22@yahoo.com","SupportRepId":4}
{"CustomerId":24,"FirstName":"Frank","LastName":"Ralston","Company":null,"Address":"162 E Superior Street","City":"Chicago","State":"IL","Country":"USA","PostalCode":"60611","Phone":"+1 (312) 332-3232","Fax":null,"Email":"fralston@gmail.com","SupportRepId":3}
{"CustomerId":25,"FirstName":"Victor","LastName":"Stevens","Company":null,"Address":"319 N. Frances Street","City":"Madison","State":"WI","Country":"USA","PostalCode":"53703","Phone":"+1 (608) 257-0597","Fax":null,"Email":"vstevens@yahoo.com","SupportRepId":5}
{"CustomerId":26,"FirstName":"Richard","LastName":"Cunningham","Company":null,"Address":"2211 W Berry Street","City":"Fort Worth","State":"TX","Country":"USA","PostalCode":"76110","Phone":"+1 (817) 924-7272","Fax":null,"Email":"ricunningham@hotmail.com","SupportRepId":4}
{"CustomerId":27,"FirstName":"Patrick","LastName":"Gray","Company":null,"Address":"1033 N Park Ave","City":"Tucson","State":"AZ","Country":"USA","PostalCode":"85719","Phone":"+1 (520) 622-4200","Fax":null,"Email":"patrick.gray@aol.com","SupportRepId":4}
{"CustomerId":28,"FirstName":"Julia","LastName":"Barnett","Company":null,"Address":"302 S 700 E","City":"Salt Lake City","State":"UT","Country":"USA","PostalCode":"84102","Phone":"+1 (801) 531-7272","Fax":null,"Email":"jubarnett@gmail.com","SupportRepId":5}
{"CustomerId":29,"FirstName":"Robert","LastName":"Brown","Company":null,"Address":"796 Dundas Street West","City":"Toronto","State":"ON","Country":"Canada","PostalCode":"M6J 1V1","Phone":"+1 (416) 363-8888","Fax":null,"Email":"robbrown@shaw.ca","SupportRepId":3}
{"CustomerId":30,"FirstName":"Edward","LastName":"Francis","Company":null,"Address":"230 Elgin Street","City":"Ottawa","State":"ON","Country":"Canada","PostalCode":"K2P 1L7","Phone":"+1 (613) 234-3322","Fax":null,"Email":"edfrancis@yachoo.ca","SupportRepId":3}
{"CustomerId":31,"FirstName":"Martha","LastName":"Silk","Company":null,"Address":"194A Chain Lake Drive","City":"Halifax","State":"NS","Country":"Canada","PostalCode":"B3S 1C5","Phone":"+1 (902) 450-0450","Fax":null,"Email":"marthasilk@gmail.com","SupportRepId":5}
{"CustomerId":32,"FirstName":"Aaron","LastName":"Mitchell","Company":null,"Address":"696 Osborne Street","City":"Winnipeg","State":"MB","Country":"Canada","PostalCode":"R3L 2B9","Phone":"+1 (204) 452-6452","Fax":null,"Email":"aaronmitchell@yahoo.ca","SupportRepId":4}
{"CustomerId":33,"FirstName":"Ellie","LastName":"Sullivan","Company":null,"Address":"5112 48 Street","City":"Yellowknife","State":"NT","Country":"Canada","PostalCode":"X1A 1N6","Phone":"+1 (867) 920-2233","Fax":null,"Email":"ellie.sullivan@shaw.ca","SupportRepId":3}
{"CustomerId":34,"FirstName":"Joăo","LastName":"Fernandes","Company":null,"Address":"Rua da Assunçăo 53","City":"Lisbon","State":null,"Country":"Portugal","PostalCode":null,"Phone":"+351 (213) 466-111","Fax":null,"Email":"jfernandes@yahoo.pt","SupportRepId":4}
{"CustomerId":35,"FirstName":"Madalena","LastName":"Sampaio","Company":null,"Address":"Rua dos Campeőes Europeus de Viena, 4350","City":"Porto","State":null,"Country":"Portugal","PostalCode":null,"Phone":"+351 (225) 022-448","Fax":null,"Email":"masampaio@sapo.pt","SupportRepId":4}
{"CustomerId":36,"FirstName":"Hannah","LastName":"Schneider","Company":null,"Address":"Tauentzienstraße 8","City":"Berlin","State":null,"Country":"Germany","PostalCode":"10789","Phone":"+49 030 26550280","Fax":null,"Email":"hannah.schneider@yahoo.de","SupportRepId":5}
{"CustomerId":37,"FirstName":"Fynn","LastName":"Zimmermann","Company":null,"Address":"Berger Straße 10","City":"Frankfurt","State":null,"Country":"Germany","PostalCode":"60316","Phone":"+49 069 40598889","Fax":null,"Email":"fzimmermann@yahoo.de","SupportRepId":3}
{"CustomerId":38,"FirstName":"Niklas","LastName":"Schröder","Company":null,"Address":"Barbarossastraße 19","City":"Berlin","State":null,"Country":"Germany","PostalCode":"10779","Phone":"+49 030 2141444","Fax":null,"Email":"nschroder@surfeu.de","SupportRepId":3}
{"CustomerId":39,"FirstName":"Camille","LastName":"Bernard","Company":null,"Address":"4, Rue Milton","City":"Paris","State":null,"Country":"France","PostalCode":"75009","Phone":"+33 01 49 70 65 65","Fax":null,"Email":"camille.bernard@yahoo.fr","SupportRepId":4}
{"CustomerId":40,"FirstName":"Dominique","LastName":"Lefebvre","Company":null,"Address":"8, Rue Hanovre","City":"Paris","State":null,"Country":"France","PostalCode":"75002","Phone":"+33 01 47 42 71 71","Fax":null,"Email":"dominiquelefebvre@gmail.com","SupportRepId":4}
{"CustomerId":41,"FirstName":"Marc","LastName":"Dubois","Company":null,"Address":"11, Place Bellecour","City":"Lyon","State":null,"Country":"France","PostalCode":"69002","Phone":"+33 04 78 30 30 30","Fax":null,"Email":"marc.dubois@hotmail.com","SupportRepId":5}
{"CustomerId":42,"FirstName":"Wyatt","LastName":"Girard","Company":null,"Address":"9, Place Louis Barthou","City":"Bordeaux","State":null,"Country":"France","PostalCode":"33000","Phone":"+33 05 56 96 96 96","Fax":null,"Email":"wyatt.girard@yahoo.fr","SupportRepId":3}
{"CustomerId":43,"FirstName":"Isabelle","LastName":"Mercier","Company":null,"Address":"68, Rue Jouvence","City":"Dijon","State":null,"Country":"France","PostalCode":"21000","Phone":"+33 03 80 73 66 99","Fax":null,"Email":"isabelle_mercier@apple.fr","SupportRepId":3}
{"CustomerId":44,"FirstName":"Terhi","LastName":"Hämäläinen","Company":null,"Address":"Porthaninkatu 9","City":"Helsinki","State":null,"Country":"Finland","PostalCode":"00530","Phone":"+358 09 870 2000","Fax":null,"Email":"terhi.hamalainen@apple.fi","SupportRepId":3}
{"CustomerId":45,"FirstName":"Ladislav","LastName":"Kovács","Company":null,"Address":"Erzsébet krt. 58.","City":"Budapest","State":null,"Country":"Hungary","PostalCode":"H-1073","Phone":null,"Fax":null,"Email":"ladislav_kovacs@apple.hu","SupportRepId":3}
{"CustomerId":46,"FirstName":"Hugh","LastName":"O'Reilly","Company":null,"Address":"3 Chatham Street","City":"Dublin","State":"Dublin","Country":"Ireland","PostalCode":null,"Phone":"+353 01 6792424","Fax":null,"Email":"hughoreilly@apple.ie","SupportRepId":3}
{"CustomerId":47,"FirstName":"Lucas","LastName":"Mancini","Company":null,"Address":"Via Degli Scipioni, 43","City":"Rome","State":"RM","Country":"Italy","PostalCode":"00192","Phone":"+39 06 39733434","Fax":null,"Email":"lucas.mancini@yahoo.it","SupportRepId":5}
{"CustomerId":48,"FirstName":"Johannes","LastName":"Van der Berg","Company":null,"Address":"Lijnbaansgracht 120bg","City":"Amsterdam","State":"VV","Country":"Netherlands","PostalCode":"1016","Phone":"+31 020 6223130","Fax":null,"Email":"johavanderberg@yahoo.nl","SupportRepId":5}
{"CustomerId":49,"FirstName":"Stanislaw","LastName":"Wójcik","Company":null,"Address":"Ordynacka 10","City":"Warsaw","State":null,"Country":"Poland","PostalCode":"00-358","Phone":"+48 22 828 37 39","Fax":null,"Email":"stanislaw.wójcik@wp.pl","SupportRepId":4}
{"CustomerId":50,"FirstName":"Enrique","LastName":"Muńoz","Company":null,"Address":"C/ San Bernardo 85","City":"Madrid","State":null,"Country":"Spain","PostalCode":"28015","Phone":"+34 914 454 454","Fax":null,"Email":"enrique_munoz@yahoo.es","SupportRepId":5}
{"CustomerId":51,"FirstName":"Joakim","LastName":"Johansson","Company":null,"Address":"Celsiusg. 9","City":"Stockholm","State":null,"Country":"Sweden","PostalCode":"11230","Phone":"+46 08-651 52 52","Fax":null,"Email":"joakim.johansson@yahoo.se","SupportRepId":5}
{"CustomerId":52,"FirstName":"Emma","LastName":"Jones","Company":null,"Address":"202 Hoxton Street","City":"London","State":null,"Country":"United Kingdom","PostalCode":"N1 5LH","Phone":"+44 020 7707 0707","Fax":null,"Email":"emma_jones@hotmail.com","SupportRepId":3}
{"CustomerId":53,"FirstName":"Phil","LastName":"Hughes","Company":null,"Address":"113 Lupus St","City":"London","State":null,"Country":"United Kingdom","PostalCode":"SW1V 3EN","Phone":"+44 020 7976 5722","Fax":null,"Email":"phil.hughes@gmail.com","SupportRepId":3}
{"CustomerId":54,"FirstName":"Steve","LastName":"Murray","Company":null,"Address":"110 Raeburn Pl","City":"Edinburgh","State":null,"Country":"United Kingdom","PostalCode":"EH4 1HH","Phone":"+44 0131 315 3300","Fax":null,"Email":"steve.murray@yahoo.uk","SupportRepId":5}
{"CustomerId":55,"FirstName":"Mark","LastName":"Taylor","Company":null,"Address":"421 Bourke Street","City":"Sidney","State":"NSW","Country":"Australia","PostalCode":"2010","Phone":"+61 (02) 9332 3633","Fax":null,"Email":"mark.taylor@yahoo.au","SupportRepId":4}
{"CustomerId":56,"FirstName":"Diego","LastName":"Gutiérrez","Company":null,"Address":"307 Macacha Güemes","City":"Buenos Aires","State":null,"Country":"Argentina","PostalCode":"1106","Phone":"+54 (0)11 4311 4333","Fax":null,"Email":"diego.gutierrez@yahoo.ar","SupportRepId":4}
{"CustomerId":57,"FirstName":"Luis","LastName":"Rojas","Company":null,"Address":"Calle Lira, 198","City":"Santiago","State":null,"Country":"Chile","PostalCode":null,"Phone":"+56 (0)2 635 4444","Fax":null,"Email":"luisrojas@yahoo.cl","SupportRepId":5}
{"CustomerId":58,"FirstName":"Manoj","LastName":"Pareek","Company":null,"Address":"12,Community Centre","City":"Delhi","State":null,"Country":"India","PostalCode":"110017","Phone":"+91 0124 39883988","Fax":null,"Email":"manoj.pareek@rediff.com","SupportRepId":3}
{"CustomerId":59,"FirstName":"Puja","LastName":"Srivastava","Company":null,"Address":"3,Raj Bhavan Road","City":"Bangalore","State":null,"Country":"India","PostalCode":"560001","Phone":"+91 080 22289999","Fax":null,"Email":"puja_srivastava@yahoo.in","SupportRepId":3}
@@ -0,0 +1,8 @@
{"EmployeeId":1,"LastName":"Adams","FirstName":"Andrew","Title":"General Manager","ReportsTo":null,"BirthDate":"1962-02-17T23:00:00.000Z","HireDate":"2002-08-13T22:00:00.000Z","Address":"11120 Jasper Ave NW","City":"Edmonton","State":"AB","Country":"Canada","PostalCode":"T5K 2N1","Phone":"+1 (780) 428-9482","Fax":"+1 (780) 428-3457","Email":"andrew@chinookcorp.com"}
{"EmployeeId":2,"LastName":"Edwards","FirstName":"Nancy","Title":"Sales Manager","ReportsTo":1,"BirthDate":"1958-12-07T23:00:00.000Z","HireDate":"2002-04-30T22:00:00.000Z","Address":"825 8 Ave SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 2T3","Phone":"+1 (403) 262-3443","Fax":"+1 (403) 262-3322","Email":"nancy@chinookcorp.com"}
{"EmployeeId":3,"LastName":"Peacock","FirstName":"Jane","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1973-08-28T23:00:00.000Z","HireDate":"2002-03-31T22:00:00.000Z","Address":"1111 6 Ave SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 5M5","Phone":"+1 (403) 262-3443","Fax":"+1 (403) 262-6712","Email":"jane@chinookcorp.com"}
{"EmployeeId":4,"LastName":"Park","FirstName":"Margaret","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1947-09-18T22:00:00.000Z","HireDate":"2003-05-02T22:00:00.000Z","Address":"683 10 Street SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 5G3","Phone":"+1 (403) 263-4423","Fax":"+1 (403) 263-4289","Email":"margaret@chinookcorp.com"}
{"EmployeeId":5,"LastName":"Johnson","FirstName":"Steve","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1965-03-02T23:00:00.000Z","HireDate":"2003-10-16T22:00:00.000Z","Address":"7727B 41 Ave","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T3B 1Y7","Phone":"1 (780) 836-9987","Fax":"1 (780) 836-9543","Email":"steve@chinookcorp.com"}
{"EmployeeId":6,"LastName":"Mitchell","FirstName":"Michael","Title":"IT Manager","ReportsTo":1,"BirthDate":"1973-06-30T23:00:00.000Z","HireDate":"2003-10-16T22:00:00.000Z","Address":"5827 Bowness Road NW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T3B 0C5","Phone":"+1 (403) 246-9887","Fax":"+1 (403) 246-9899","Email":"michael@chinookcorp.com"}
{"EmployeeId":7,"LastName":"King","FirstName":"Robert","Title":"IT Staff","ReportsTo":6,"BirthDate":"1970-05-28T23:00:00.000Z","HireDate":"2004-01-01T23:00:00.000Z","Address":"590 Columbia Boulevard West","City":"Lethbridge","State":"AB","Country":"Canada","PostalCode":"T1K 5N8","Phone":"+1 (403) 456-9986","Fax":"+1 (403) 456-8485","Email":"robert@chinookcorp.com"}
{"EmployeeId":8,"LastName":"Callahan","FirstName":"Laura","Title":"IT Staff","ReportsTo":6,"BirthDate":"1968-01-08T23:00:00.000Z","HireDate":"2004-03-03T23:00:00.000Z","Address":"923 7 ST NW","City":"Lethbridge","State":"AB","Country":"Canada","PostalCode":"T1H 1Y8","Phone":"+1 (403) 467-3351","Fax":"+1 (403) 467-8772","Email":"laura@chinookcorp.com"}
+25
View File
@@ -0,0 +1,25 @@
{"GenreId":1,"Name":"Rock"}
{"GenreId":2,"Name":"Jazz"}
{"GenreId":3,"Name":"Metal"}
{"GenreId":4,"Name":"Alternative & Punk"}
{"GenreId":5,"Name":"Rock And Roll"}
{"GenreId":6,"Name":"Blues"}
{"GenreId":7,"Name":"Latin"}
{"GenreId":8,"Name":"Reggae"}
{"GenreId":9,"Name":"Pop"}
{"GenreId":10,"Name":"Soundtrack"}
{"GenreId":11,"Name":"Bossa Nova"}
{"GenreId":12,"Name":"Easy Listening"}
{"GenreId":13,"Name":"Heavy Metal"}
{"GenreId":14,"Name":"R&B/Soul"}
{"GenreId":15,"Name":"Electronica/Dance"}
{"GenreId":16,"Name":"World"}
{"GenreId":17,"Name":"Hip Hop/Rap"}
{"GenreId":18,"Name":"Science Fiction"}
{"GenreId":19,"Name":"TV Shows"}
{"GenreId":20,"Name":"Sci Fi & Fantasy"}
{"GenreId":21,"Name":"Drama"}
{"GenreId":22,"Name":"Comedy"}
{"GenreId":23,"Name":"Alternative"}
{"GenreId":24,"Name":"Classical"}
{"GenreId":25,"Name":"Opera"}
+412
View File
@@ -0,0 +1,412 @@
{"InvoiceId":1,"CustomerId":2,"InvoiceDate":"2008-12-31T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"1.98"}
{"InvoiceId":2,"CustomerId":4,"InvoiceDate":"2009-01-01T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"3.96"}
{"InvoiceId":3,"CustomerId":8,"InvoiceDate":"2009-01-02T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"5.94"}
{"InvoiceId":4,"CustomerId":14,"InvoiceDate":"2009-01-05T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"8.91"}
{"InvoiceId":5,"CustomerId":23,"InvoiceDate":"2009-01-10T23:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"13.86"}
{"InvoiceId":6,"CustomerId":37,"InvoiceDate":"2009-01-18T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"0.99"}
{"InvoiceId":7,"CustomerId":38,"InvoiceDate":"2009-01-31T23:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"1.98"}
{"InvoiceId":8,"CustomerId":40,"InvoiceDate":"2009-01-31T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"1.98"}
{"InvoiceId":9,"CustomerId":42,"InvoiceDate":"2009-02-01T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"3.96"}
{"InvoiceId":10,"CustomerId":46,"InvoiceDate":"2009-02-02T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"5.94"}
{"InvoiceId":11,"CustomerId":52,"InvoiceDate":"2009-02-05T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"8.91"}
{"InvoiceId":12,"CustomerId":2,"InvoiceDate":"2009-02-10T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"13.86"}
{"InvoiceId":13,"CustomerId":16,"InvoiceDate":"2009-02-18T23:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"0.99"}
{"InvoiceId":14,"CustomerId":17,"InvoiceDate":"2009-03-03T23:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"1.98"}
{"InvoiceId":15,"CustomerId":19,"InvoiceDate":"2009-03-03T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.98"}
{"InvoiceId":16,"CustomerId":21,"InvoiceDate":"2009-03-04T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"3.96"}
{"InvoiceId":17,"CustomerId":25,"InvoiceDate":"2009-03-05T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"5.94"}
{"InvoiceId":18,"CustomerId":31,"InvoiceDate":"2009-03-08T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"8.91"}
{"InvoiceId":19,"CustomerId":40,"InvoiceDate":"2009-03-13T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"13.86"}
{"InvoiceId":20,"CustomerId":54,"InvoiceDate":"2009-03-21T23:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"0.99"}
{"InvoiceId":21,"CustomerId":55,"InvoiceDate":"2009-04-03T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"1.98"}
{"InvoiceId":22,"CustomerId":57,"InvoiceDate":"2009-04-03T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":23,"CustomerId":59,"InvoiceDate":"2009-04-04T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"3.96"}
{"InvoiceId":24,"CustomerId":4,"InvoiceDate":"2009-04-05T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"5.94"}
{"InvoiceId":25,"CustomerId":10,"InvoiceDate":"2009-04-08T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"8.91"}
{"InvoiceId":26,"CustomerId":19,"InvoiceDate":"2009-04-13T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"13.86"}
{"InvoiceId":27,"CustomerId":33,"InvoiceDate":"2009-04-21T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"0.99"}
{"InvoiceId":28,"CustomerId":34,"InvoiceDate":"2009-05-04T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":29,"CustomerId":36,"InvoiceDate":"2009-05-04T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"1.98"}
{"InvoiceId":30,"CustomerId":38,"InvoiceDate":"2009-05-05T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"3.96"}
{"InvoiceId":31,"CustomerId":42,"InvoiceDate":"2009-05-06T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"5.94"}
{"InvoiceId":32,"CustomerId":48,"InvoiceDate":"2009-05-09T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"8.91"}
{"InvoiceId":33,"CustomerId":57,"InvoiceDate":"2009-05-14T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"13.86"}
{"InvoiceId":34,"CustomerId":12,"InvoiceDate":"2009-05-22T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"0.99"}
{"InvoiceId":35,"CustomerId":13,"InvoiceDate":"2009-06-04T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"1.98"}
{"InvoiceId":36,"CustomerId":15,"InvoiceDate":"2009-06-04T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"1.98"}
{"InvoiceId":37,"CustomerId":17,"InvoiceDate":"2009-06-05T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"3.96"}
{"InvoiceId":38,"CustomerId":21,"InvoiceDate":"2009-06-06T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"5.94"}
{"InvoiceId":39,"CustomerId":27,"InvoiceDate":"2009-06-09T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"8.91"}
{"InvoiceId":40,"CustomerId":36,"InvoiceDate":"2009-06-14T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"13.86"}
{"InvoiceId":41,"CustomerId":50,"InvoiceDate":"2009-06-22T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"0.99"}
{"InvoiceId":42,"CustomerId":51,"InvoiceDate":"2009-07-05T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"1.98"}
{"InvoiceId":43,"CustomerId":53,"InvoiceDate":"2009-07-05T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"1.98"}
{"InvoiceId":44,"CustomerId":55,"InvoiceDate":"2009-07-06T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"3.96"}
{"InvoiceId":45,"CustomerId":59,"InvoiceDate":"2009-07-07T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"5.94"}
{"InvoiceId":46,"CustomerId":6,"InvoiceDate":"2009-07-10T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"8.91"}
{"InvoiceId":47,"CustomerId":15,"InvoiceDate":"2009-07-15T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"13.86"}
{"InvoiceId":48,"CustomerId":29,"InvoiceDate":"2009-07-23T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"0.99"}
{"InvoiceId":49,"CustomerId":30,"InvoiceDate":"2009-08-05T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"1.98"}
{"InvoiceId":50,"CustomerId":32,"InvoiceDate":"2009-08-05T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"1.98"}
{"InvoiceId":51,"CustomerId":34,"InvoiceDate":"2009-08-06T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"3.96"}
{"InvoiceId":52,"CustomerId":38,"InvoiceDate":"2009-08-07T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"5.94"}
{"InvoiceId":53,"CustomerId":44,"InvoiceDate":"2009-08-10T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"8.91"}
{"InvoiceId":54,"CustomerId":53,"InvoiceDate":"2009-08-15T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"13.86"}
{"InvoiceId":55,"CustomerId":8,"InvoiceDate":"2009-08-23T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"0.99"}
{"InvoiceId":56,"CustomerId":9,"InvoiceDate":"2009-09-05T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"1.98"}
{"InvoiceId":57,"CustomerId":11,"InvoiceDate":"2009-09-05T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"1.98"}
{"InvoiceId":58,"CustomerId":13,"InvoiceDate":"2009-09-06T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"3.96"}
{"InvoiceId":59,"CustomerId":17,"InvoiceDate":"2009-09-07T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"5.94"}
{"InvoiceId":60,"CustomerId":23,"InvoiceDate":"2009-09-10T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"8.91"}
{"InvoiceId":61,"CustomerId":32,"InvoiceDate":"2009-09-15T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"13.86"}
{"InvoiceId":62,"CustomerId":46,"InvoiceDate":"2009-09-23T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"0.99"}
{"InvoiceId":63,"CustomerId":47,"InvoiceDate":"2009-10-06T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"1.98"}
{"InvoiceId":64,"CustomerId":49,"InvoiceDate":"2009-10-06T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"1.98"}
{"InvoiceId":65,"CustomerId":51,"InvoiceDate":"2009-10-07T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"3.96"}
{"InvoiceId":66,"CustomerId":55,"InvoiceDate":"2009-10-08T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"5.94"}
{"InvoiceId":67,"CustomerId":2,"InvoiceDate":"2009-10-11T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"8.91"}
{"InvoiceId":68,"CustomerId":11,"InvoiceDate":"2009-10-16T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"13.86"}
{"InvoiceId":69,"CustomerId":25,"InvoiceDate":"2009-10-24T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"0.99"}
{"InvoiceId":70,"CustomerId":26,"InvoiceDate":"2009-11-06T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"1.98"}
{"InvoiceId":71,"CustomerId":28,"InvoiceDate":"2009-11-06T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"1.98"}
{"InvoiceId":72,"CustomerId":30,"InvoiceDate":"2009-11-07T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"3.96"}
{"InvoiceId":73,"CustomerId":34,"InvoiceDate":"2009-11-08T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"5.94"}
{"InvoiceId":74,"CustomerId":40,"InvoiceDate":"2009-11-11T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"8.91"}
{"InvoiceId":75,"CustomerId":49,"InvoiceDate":"2009-11-16T23:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"13.86"}
{"InvoiceId":76,"CustomerId":4,"InvoiceDate":"2009-11-24T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"0.99"}
{"InvoiceId":77,"CustomerId":5,"InvoiceDate":"2009-12-07T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"1.98"}
{"InvoiceId":78,"CustomerId":7,"InvoiceDate":"2009-12-07T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"1.98"}
{"InvoiceId":79,"CustomerId":9,"InvoiceDate":"2009-12-08T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"3.96"}
{"InvoiceId":80,"CustomerId":13,"InvoiceDate":"2009-12-09T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"5.94"}
{"InvoiceId":81,"CustomerId":19,"InvoiceDate":"2009-12-12T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"8.91"}
{"InvoiceId":82,"CustomerId":28,"InvoiceDate":"2009-12-17T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"13.86"}
{"InvoiceId":83,"CustomerId":42,"InvoiceDate":"2009-12-25T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"0.99"}
{"InvoiceId":84,"CustomerId":43,"InvoiceDate":"2010-01-07T23:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"1.98"}
{"InvoiceId":85,"CustomerId":45,"InvoiceDate":"2010-01-07T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"1.98"}
{"InvoiceId":86,"CustomerId":47,"InvoiceDate":"2010-01-08T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"3.96"}
{"InvoiceId":87,"CustomerId":51,"InvoiceDate":"2010-01-09T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"6.94"}
{"InvoiceId":88,"CustomerId":57,"InvoiceDate":"2010-01-12T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"17.91"}
{"InvoiceId":89,"CustomerId":7,"InvoiceDate":"2010-01-17T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"18.86"}
{"InvoiceId":90,"CustomerId":21,"InvoiceDate":"2010-01-25T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"0.99"}
{"InvoiceId":91,"CustomerId":22,"InvoiceDate":"2010-02-07T23:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"1.98"}
{"InvoiceId":92,"CustomerId":24,"InvoiceDate":"2010-02-07T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"1.98"}
{"InvoiceId":93,"CustomerId":26,"InvoiceDate":"2010-02-08T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"3.96"}
{"InvoiceId":94,"CustomerId":30,"InvoiceDate":"2010-02-09T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"5.94"}
{"InvoiceId":95,"CustomerId":36,"InvoiceDate":"2010-02-12T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"8.91"}
{"InvoiceId":96,"CustomerId":45,"InvoiceDate":"2010-02-17T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"21.86"}
{"InvoiceId":97,"CustomerId":59,"InvoiceDate":"2010-02-25T23:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"1.99"}
{"InvoiceId":98,"CustomerId":1,"InvoiceDate":"2010-03-10T23:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"3.98"}
{"InvoiceId":99,"CustomerId":3,"InvoiceDate":"2010-03-10T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"3.98"}
{"InvoiceId":100,"CustomerId":5,"InvoiceDate":"2010-03-11T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"3.96"}
{"InvoiceId":101,"CustomerId":9,"InvoiceDate":"2010-03-12T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"5.94"}
{"InvoiceId":102,"CustomerId":15,"InvoiceDate":"2010-03-15T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"9.91"}
{"InvoiceId":103,"CustomerId":24,"InvoiceDate":"2010-03-20T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"15.86"}
{"InvoiceId":104,"CustomerId":38,"InvoiceDate":"2010-03-28T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"0.99"}
{"InvoiceId":105,"CustomerId":39,"InvoiceDate":"2010-04-10T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.98"}
{"InvoiceId":106,"CustomerId":41,"InvoiceDate":"2010-04-10T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"1.98"}
{"InvoiceId":107,"CustomerId":43,"InvoiceDate":"2010-04-11T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"3.96"}
{"InvoiceId":108,"CustomerId":47,"InvoiceDate":"2010-04-12T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"5.94"}
{"InvoiceId":109,"CustomerId":53,"InvoiceDate":"2010-04-15T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"8.91"}
{"InvoiceId":110,"CustomerId":3,"InvoiceDate":"2010-04-20T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"13.86"}
{"InvoiceId":111,"CustomerId":17,"InvoiceDate":"2010-04-28T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"0.99"}
{"InvoiceId":112,"CustomerId":18,"InvoiceDate":"2010-05-11T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"1.98"}
{"InvoiceId":113,"CustomerId":20,"InvoiceDate":"2010-05-11T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"1.98"}
{"InvoiceId":114,"CustomerId":22,"InvoiceDate":"2010-05-12T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"3.96"}
{"InvoiceId":115,"CustomerId":26,"InvoiceDate":"2010-05-13T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"5.94"}
{"InvoiceId":116,"CustomerId":32,"InvoiceDate":"2010-05-16T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"8.91"}
{"InvoiceId":117,"CustomerId":41,"InvoiceDate":"2010-05-21T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"13.86"}
{"InvoiceId":118,"CustomerId":55,"InvoiceDate":"2010-05-29T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"0.99"}
{"InvoiceId":119,"CustomerId":56,"InvoiceDate":"2010-06-11T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"1.98"}
{"InvoiceId":120,"CustomerId":58,"InvoiceDate":"2010-06-11T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.98"}
{"InvoiceId":121,"CustomerId":1,"InvoiceDate":"2010-06-12T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"3.96"}
{"InvoiceId":122,"CustomerId":5,"InvoiceDate":"2010-06-13T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"5.94"}
{"InvoiceId":123,"CustomerId":11,"InvoiceDate":"2010-06-16T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"8.91"}
{"InvoiceId":124,"CustomerId":20,"InvoiceDate":"2010-06-21T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"13.86"}
{"InvoiceId":125,"CustomerId":34,"InvoiceDate":"2010-06-29T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"0.99"}
{"InvoiceId":126,"CustomerId":35,"InvoiceDate":"2010-07-12T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":127,"CustomerId":37,"InvoiceDate":"2010-07-12T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"1.98"}
{"InvoiceId":128,"CustomerId":39,"InvoiceDate":"2010-07-13T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"3.96"}
{"InvoiceId":129,"CustomerId":43,"InvoiceDate":"2010-07-14T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"5.94"}
{"InvoiceId":130,"CustomerId":49,"InvoiceDate":"2010-07-17T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"8.91"}
{"InvoiceId":131,"CustomerId":58,"InvoiceDate":"2010-07-22T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"13.86"}
{"InvoiceId":132,"CustomerId":13,"InvoiceDate":"2010-07-30T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"0.99"}
{"InvoiceId":133,"CustomerId":14,"InvoiceDate":"2010-08-12T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"1.98"}
{"InvoiceId":134,"CustomerId":16,"InvoiceDate":"2010-08-12T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"1.98"}
{"InvoiceId":135,"CustomerId":18,"InvoiceDate":"2010-08-13T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"3.96"}
{"InvoiceId":136,"CustomerId":22,"InvoiceDate":"2010-08-14T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"5.94"}
{"InvoiceId":137,"CustomerId":28,"InvoiceDate":"2010-08-17T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"8.91"}
{"InvoiceId":138,"CustomerId":37,"InvoiceDate":"2010-08-22T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"13.86"}
{"InvoiceId":139,"CustomerId":51,"InvoiceDate":"2010-08-30T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"0.99"}
{"InvoiceId":140,"CustomerId":52,"InvoiceDate":"2010-09-12T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"1.98"}
{"InvoiceId":141,"CustomerId":54,"InvoiceDate":"2010-09-12T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"1.98"}
{"InvoiceId":142,"CustomerId":56,"InvoiceDate":"2010-09-13T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"3.96"}
{"InvoiceId":143,"CustomerId":1,"InvoiceDate":"2010-09-14T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"5.94"}
{"InvoiceId":144,"CustomerId":7,"InvoiceDate":"2010-09-17T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"8.91"}
{"InvoiceId":145,"CustomerId":16,"InvoiceDate":"2010-09-22T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"13.86"}
{"InvoiceId":146,"CustomerId":30,"InvoiceDate":"2010-09-30T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"0.99"}
{"InvoiceId":147,"CustomerId":31,"InvoiceDate":"2010-10-13T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"1.98"}
{"InvoiceId":148,"CustomerId":33,"InvoiceDate":"2010-10-13T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"1.98"}
{"InvoiceId":149,"CustomerId":35,"InvoiceDate":"2010-10-14T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"3.96"}
{"InvoiceId":150,"CustomerId":39,"InvoiceDate":"2010-10-15T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"5.94"}
{"InvoiceId":151,"CustomerId":45,"InvoiceDate":"2010-10-18T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"8.91"}
{"InvoiceId":152,"CustomerId":54,"InvoiceDate":"2010-10-23T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"13.86"}
{"InvoiceId":153,"CustomerId":9,"InvoiceDate":"2010-10-31T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"0.99"}
{"InvoiceId":154,"CustomerId":10,"InvoiceDate":"2010-11-13T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"1.98"}
{"InvoiceId":155,"CustomerId":12,"InvoiceDate":"2010-11-13T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"1.98"}
{"InvoiceId":156,"CustomerId":14,"InvoiceDate":"2010-11-14T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"3.96"}
{"InvoiceId":157,"CustomerId":18,"InvoiceDate":"2010-11-15T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"5.94"}
{"InvoiceId":158,"CustomerId":24,"InvoiceDate":"2010-11-18T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"8.91"}
{"InvoiceId":159,"CustomerId":33,"InvoiceDate":"2010-11-23T23:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"13.86"}
{"InvoiceId":160,"CustomerId":47,"InvoiceDate":"2010-12-01T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"0.99"}
{"InvoiceId":161,"CustomerId":48,"InvoiceDate":"2010-12-14T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"1.98"}
{"InvoiceId":162,"CustomerId":50,"InvoiceDate":"2010-12-14T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"1.98"}
{"InvoiceId":163,"CustomerId":52,"InvoiceDate":"2010-12-15T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"3.96"}
{"InvoiceId":164,"CustomerId":56,"InvoiceDate":"2010-12-16T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"5.94"}
{"InvoiceId":165,"CustomerId":3,"InvoiceDate":"2010-12-19T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"8.91"}
{"InvoiceId":166,"CustomerId":12,"InvoiceDate":"2010-12-24T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"13.86"}
{"InvoiceId":167,"CustomerId":26,"InvoiceDate":"2011-01-01T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"0.99"}
{"InvoiceId":168,"CustomerId":27,"InvoiceDate":"2011-01-14T23:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"1.98"}
{"InvoiceId":169,"CustomerId":29,"InvoiceDate":"2011-01-14T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"1.98"}
{"InvoiceId":170,"CustomerId":31,"InvoiceDate":"2011-01-15T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"3.96"}
{"InvoiceId":171,"CustomerId":35,"InvoiceDate":"2011-01-16T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"5.94"}
{"InvoiceId":172,"CustomerId":41,"InvoiceDate":"2011-01-19T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"8.91"}
{"InvoiceId":173,"CustomerId":50,"InvoiceDate":"2011-01-24T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"13.86"}
{"InvoiceId":174,"CustomerId":5,"InvoiceDate":"2011-02-01T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"0.99"}
{"InvoiceId":175,"CustomerId":6,"InvoiceDate":"2011-02-14T23:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"1.98"}
{"InvoiceId":176,"CustomerId":8,"InvoiceDate":"2011-02-14T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"1.98"}
{"InvoiceId":177,"CustomerId":10,"InvoiceDate":"2011-02-15T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"3.96"}
{"InvoiceId":178,"CustomerId":14,"InvoiceDate":"2011-02-16T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"5.94"}
{"InvoiceId":179,"CustomerId":20,"InvoiceDate":"2011-02-19T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"8.91"}
{"InvoiceId":180,"CustomerId":29,"InvoiceDate":"2011-02-24T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"13.86"}
{"InvoiceId":181,"CustomerId":43,"InvoiceDate":"2011-03-04T23:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"0.99"}
{"InvoiceId":182,"CustomerId":44,"InvoiceDate":"2011-03-17T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"1.98"}
{"InvoiceId":183,"CustomerId":46,"InvoiceDate":"2011-03-17T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":184,"CustomerId":48,"InvoiceDate":"2011-03-18T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"3.96"}
{"InvoiceId":185,"CustomerId":52,"InvoiceDate":"2011-03-19T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"5.94"}
{"InvoiceId":186,"CustomerId":58,"InvoiceDate":"2011-03-22T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"8.91"}
{"InvoiceId":187,"CustomerId":8,"InvoiceDate":"2011-03-27T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"13.86"}
{"InvoiceId":188,"CustomerId":22,"InvoiceDate":"2011-04-04T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"0.99"}
{"InvoiceId":189,"CustomerId":23,"InvoiceDate":"2011-04-17T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"1.98"}
{"InvoiceId":190,"CustomerId":25,"InvoiceDate":"2011-04-17T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"1.98"}
{"InvoiceId":191,"CustomerId":27,"InvoiceDate":"2011-04-18T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"3.96"}
{"InvoiceId":192,"CustomerId":31,"InvoiceDate":"2011-04-19T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"5.94"}
{"InvoiceId":193,"CustomerId":37,"InvoiceDate":"2011-04-22T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"14.91"}
{"InvoiceId":194,"CustomerId":46,"InvoiceDate":"2011-04-27T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"21.86"}
{"InvoiceId":195,"CustomerId":1,"InvoiceDate":"2011-05-05T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"0.99"}
{"InvoiceId":196,"CustomerId":2,"InvoiceDate":"2011-05-18T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"1.98"}
{"InvoiceId":197,"CustomerId":4,"InvoiceDate":"2011-05-18T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"1.98"}
{"InvoiceId":198,"CustomerId":6,"InvoiceDate":"2011-05-19T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"3.96"}
{"InvoiceId":199,"CustomerId":10,"InvoiceDate":"2011-05-20T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"5.94"}
{"InvoiceId":200,"CustomerId":16,"InvoiceDate":"2011-05-23T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"8.91"}
{"InvoiceId":201,"CustomerId":25,"InvoiceDate":"2011-05-28T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"18.86"}
{"InvoiceId":202,"CustomerId":39,"InvoiceDate":"2011-06-05T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.99"}
{"InvoiceId":203,"CustomerId":40,"InvoiceDate":"2011-06-18T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"2.98"}
{"InvoiceId":204,"CustomerId":42,"InvoiceDate":"2011-06-18T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"3.98"}
{"InvoiceId":205,"CustomerId":44,"InvoiceDate":"2011-06-19T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"7.96"}
{"InvoiceId":206,"CustomerId":48,"InvoiceDate":"2011-06-20T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"8.94"}
{"InvoiceId":207,"CustomerId":54,"InvoiceDate":"2011-06-23T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"8.91"}
{"InvoiceId":208,"CustomerId":4,"InvoiceDate":"2011-06-28T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"15.86"}
{"InvoiceId":209,"CustomerId":18,"InvoiceDate":"2011-07-06T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"0.99"}
{"InvoiceId":210,"CustomerId":19,"InvoiceDate":"2011-07-19T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.98"}
{"InvoiceId":211,"CustomerId":21,"InvoiceDate":"2011-07-19T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"1.98"}
{"InvoiceId":212,"CustomerId":23,"InvoiceDate":"2011-07-20T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"3.96"}
{"InvoiceId":213,"CustomerId":27,"InvoiceDate":"2011-07-21T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"5.94"}
{"InvoiceId":214,"CustomerId":33,"InvoiceDate":"2011-07-24T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"8.91"}
{"InvoiceId":215,"CustomerId":42,"InvoiceDate":"2011-07-29T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"13.86"}
{"InvoiceId":216,"CustomerId":56,"InvoiceDate":"2011-08-06T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"0.99"}
{"InvoiceId":217,"CustomerId":57,"InvoiceDate":"2011-08-19T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":218,"CustomerId":59,"InvoiceDate":"2011-08-19T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"1.98"}
{"InvoiceId":219,"CustomerId":2,"InvoiceDate":"2011-08-20T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"3.96"}
{"InvoiceId":220,"CustomerId":6,"InvoiceDate":"2011-08-21T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"5.94"}
{"InvoiceId":221,"CustomerId":12,"InvoiceDate":"2011-08-24T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"8.91"}
{"InvoiceId":222,"CustomerId":21,"InvoiceDate":"2011-08-29T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"13.86"}
{"InvoiceId":223,"CustomerId":35,"InvoiceDate":"2011-09-06T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"0.99"}
{"InvoiceId":224,"CustomerId":36,"InvoiceDate":"2011-09-19T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"1.98"}
{"InvoiceId":225,"CustomerId":38,"InvoiceDate":"2011-09-19T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"1.98"}
{"InvoiceId":226,"CustomerId":40,"InvoiceDate":"2011-09-20T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"3.96"}
{"InvoiceId":227,"CustomerId":44,"InvoiceDate":"2011-09-21T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"5.94"}
{"InvoiceId":228,"CustomerId":50,"InvoiceDate":"2011-09-24T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"8.91"}
{"InvoiceId":229,"CustomerId":59,"InvoiceDate":"2011-09-29T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"13.86"}
{"InvoiceId":230,"CustomerId":14,"InvoiceDate":"2011-10-07T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"0.99"}
{"InvoiceId":231,"CustomerId":15,"InvoiceDate":"2011-10-20T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"1.98"}
{"InvoiceId":232,"CustomerId":17,"InvoiceDate":"2011-10-20T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"1.98"}
{"InvoiceId":233,"CustomerId":19,"InvoiceDate":"2011-10-21T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"3.96"}
{"InvoiceId":234,"CustomerId":23,"InvoiceDate":"2011-10-22T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"5.94"}
{"InvoiceId":235,"CustomerId":29,"InvoiceDate":"2011-10-25T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"8.91"}
{"InvoiceId":236,"CustomerId":38,"InvoiceDate":"2011-10-30T23:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"13.86"}
{"InvoiceId":237,"CustomerId":52,"InvoiceDate":"2011-11-07T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"0.99"}
{"InvoiceId":238,"CustomerId":53,"InvoiceDate":"2011-11-20T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"1.98"}
{"InvoiceId":239,"CustomerId":55,"InvoiceDate":"2011-11-20T23:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"1.98"}
{"InvoiceId":240,"CustomerId":57,"InvoiceDate":"2011-11-21T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"3.96"}
{"InvoiceId":241,"CustomerId":2,"InvoiceDate":"2011-11-22T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"5.94"}
{"InvoiceId":242,"CustomerId":8,"InvoiceDate":"2011-11-25T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"8.91"}
{"InvoiceId":243,"CustomerId":17,"InvoiceDate":"2011-11-30T23:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"13.86"}
{"InvoiceId":244,"CustomerId":31,"InvoiceDate":"2011-12-08T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"0.99"}
{"InvoiceId":245,"CustomerId":32,"InvoiceDate":"2011-12-21T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"1.98"}
{"InvoiceId":246,"CustomerId":34,"InvoiceDate":"2011-12-21T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":247,"CustomerId":36,"InvoiceDate":"2011-12-22T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"3.96"}
{"InvoiceId":248,"CustomerId":40,"InvoiceDate":"2011-12-23T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"5.94"}
{"InvoiceId":249,"CustomerId":46,"InvoiceDate":"2011-12-26T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"8.91"}
{"InvoiceId":250,"CustomerId":55,"InvoiceDate":"2011-12-31T23:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"13.86"}
{"InvoiceId":251,"CustomerId":10,"InvoiceDate":"2012-01-08T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"0.99"}
{"InvoiceId":252,"CustomerId":11,"InvoiceDate":"2012-01-21T23:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"1.98"}
{"InvoiceId":253,"CustomerId":13,"InvoiceDate":"2012-01-21T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"1.98"}
{"InvoiceId":254,"CustomerId":15,"InvoiceDate":"2012-01-22T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"3.96"}
{"InvoiceId":255,"CustomerId":19,"InvoiceDate":"2012-01-23T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"5.94"}
{"InvoiceId":256,"CustomerId":25,"InvoiceDate":"2012-01-26T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"8.91"}
{"InvoiceId":257,"CustomerId":34,"InvoiceDate":"2012-01-31T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"13.86"}
{"InvoiceId":258,"CustomerId":48,"InvoiceDate":"2012-02-08T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"0.99"}
{"InvoiceId":259,"CustomerId":49,"InvoiceDate":"2012-02-21T23:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"1.98"}
{"InvoiceId":260,"CustomerId":51,"InvoiceDate":"2012-02-21T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"1.98"}
{"InvoiceId":261,"CustomerId":53,"InvoiceDate":"2012-02-22T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"3.96"}
{"InvoiceId":262,"CustomerId":57,"InvoiceDate":"2012-02-23T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"5.94"}
{"InvoiceId":263,"CustomerId":4,"InvoiceDate":"2012-02-26T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"8.91"}
{"InvoiceId":264,"CustomerId":13,"InvoiceDate":"2012-03-02T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"13.86"}
{"InvoiceId":265,"CustomerId":27,"InvoiceDate":"2012-03-10T23:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"0.99"}
{"InvoiceId":266,"CustomerId":28,"InvoiceDate":"2012-03-23T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"1.98"}
{"InvoiceId":267,"CustomerId":30,"InvoiceDate":"2012-03-23T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"1.98"}
{"InvoiceId":268,"CustomerId":32,"InvoiceDate":"2012-03-24T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"3.96"}
{"InvoiceId":269,"CustomerId":36,"InvoiceDate":"2012-03-25T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"5.94"}
{"InvoiceId":270,"CustomerId":42,"InvoiceDate":"2012-03-28T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"8.91"}
{"InvoiceId":271,"CustomerId":51,"InvoiceDate":"2012-04-02T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"13.86"}
{"InvoiceId":272,"CustomerId":6,"InvoiceDate":"2012-04-10T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"0.99"}
{"InvoiceId":273,"CustomerId":7,"InvoiceDate":"2012-04-23T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"1.98"}
{"InvoiceId":274,"CustomerId":9,"InvoiceDate":"2012-04-23T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"1.98"}
{"InvoiceId":275,"CustomerId":11,"InvoiceDate":"2012-04-24T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"3.96"}
{"InvoiceId":276,"CustomerId":15,"InvoiceDate":"2012-04-25T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"5.94"}
{"InvoiceId":277,"CustomerId":21,"InvoiceDate":"2012-04-28T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"8.91"}
{"InvoiceId":278,"CustomerId":30,"InvoiceDate":"2012-05-03T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"13.86"}
{"InvoiceId":279,"CustomerId":44,"InvoiceDate":"2012-05-11T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"0.99"}
{"InvoiceId":280,"CustomerId":45,"InvoiceDate":"2012-05-24T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"1.98"}
{"InvoiceId":281,"CustomerId":47,"InvoiceDate":"2012-05-24T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"1.98"}
{"InvoiceId":282,"CustomerId":49,"InvoiceDate":"2012-05-25T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"3.96"}
{"InvoiceId":283,"CustomerId":53,"InvoiceDate":"2012-05-26T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"5.94"}
{"InvoiceId":284,"CustomerId":59,"InvoiceDate":"2012-05-29T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"8.91"}
{"InvoiceId":285,"CustomerId":9,"InvoiceDate":"2012-06-03T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"13.86"}
{"InvoiceId":286,"CustomerId":23,"InvoiceDate":"2012-06-11T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"0.99"}
{"InvoiceId":287,"CustomerId":24,"InvoiceDate":"2012-06-24T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"1.98"}
{"InvoiceId":288,"CustomerId":26,"InvoiceDate":"2012-06-24T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"1.98"}
{"InvoiceId":289,"CustomerId":28,"InvoiceDate":"2012-06-25T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"3.96"}
{"InvoiceId":290,"CustomerId":32,"InvoiceDate":"2012-06-26T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"5.94"}
{"InvoiceId":291,"CustomerId":38,"InvoiceDate":"2012-06-29T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"8.91"}
{"InvoiceId":292,"CustomerId":47,"InvoiceDate":"2012-07-04T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"13.86"}
{"InvoiceId":293,"CustomerId":2,"InvoiceDate":"2012-07-12T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"0.99"}
{"InvoiceId":294,"CustomerId":3,"InvoiceDate":"2012-07-25T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"1.98"}
{"InvoiceId":295,"CustomerId":5,"InvoiceDate":"2012-07-25T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"1.98"}
{"InvoiceId":296,"CustomerId":7,"InvoiceDate":"2012-07-26T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"3.96"}
{"InvoiceId":297,"CustomerId":11,"InvoiceDate":"2012-07-27T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"5.94"}
{"InvoiceId":298,"CustomerId":17,"InvoiceDate":"2012-07-30T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"10.91"}
{"InvoiceId":299,"CustomerId":26,"InvoiceDate":"2012-08-04T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"23.86"}
{"InvoiceId":300,"CustomerId":40,"InvoiceDate":"2012-08-12T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"0.99"}
{"InvoiceId":301,"CustomerId":41,"InvoiceDate":"2012-08-25T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"1.98"}
{"InvoiceId":302,"CustomerId":43,"InvoiceDate":"2012-08-25T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"1.98"}
{"InvoiceId":303,"CustomerId":45,"InvoiceDate":"2012-08-26T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"3.96"}
{"InvoiceId":304,"CustomerId":49,"InvoiceDate":"2012-08-27T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"5.94"}
{"InvoiceId":305,"CustomerId":55,"InvoiceDate":"2012-08-30T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"8.91"}
{"InvoiceId":306,"CustomerId":5,"InvoiceDate":"2012-09-04T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"16.86"}
{"InvoiceId":307,"CustomerId":19,"InvoiceDate":"2012-09-12T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.99"}
{"InvoiceId":308,"CustomerId":20,"InvoiceDate":"2012-09-25T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"3.98"}
{"InvoiceId":309,"CustomerId":22,"InvoiceDate":"2012-09-25T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"3.98"}
{"InvoiceId":310,"CustomerId":24,"InvoiceDate":"2012-09-26T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"7.96"}
{"InvoiceId":311,"CustomerId":28,"InvoiceDate":"2012-09-27T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"11.94"}
{"InvoiceId":312,"CustomerId":34,"InvoiceDate":"2012-09-30T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"10.91"}
{"InvoiceId":313,"CustomerId":43,"InvoiceDate":"2012-10-05T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"16.86"}
{"InvoiceId":314,"CustomerId":57,"InvoiceDate":"2012-10-13T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"0.99"}
{"InvoiceId":315,"CustomerId":58,"InvoiceDate":"2012-10-26T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.98"}
{"InvoiceId":316,"CustomerId":1,"InvoiceDate":"2012-10-26T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"1.98"}
{"InvoiceId":317,"CustomerId":3,"InvoiceDate":"2012-10-27T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"3.96"}
{"InvoiceId":318,"CustomerId":7,"InvoiceDate":"2012-10-28T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"5.94"}
{"InvoiceId":319,"CustomerId":13,"InvoiceDate":"2012-10-31T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"8.91"}
{"InvoiceId":320,"CustomerId":22,"InvoiceDate":"2012-11-05T23:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"13.86"}
{"InvoiceId":321,"CustomerId":36,"InvoiceDate":"2012-11-13T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"0.99"}
{"InvoiceId":322,"CustomerId":37,"InvoiceDate":"2012-11-26T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"1.98"}
{"InvoiceId":323,"CustomerId":39,"InvoiceDate":"2012-11-26T23:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.98"}
{"InvoiceId":324,"CustomerId":41,"InvoiceDate":"2012-11-27T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"3.96"}
{"InvoiceId":325,"CustomerId":45,"InvoiceDate":"2012-11-28T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"5.94"}
{"InvoiceId":326,"CustomerId":51,"InvoiceDate":"2012-12-01T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"8.91"}
{"InvoiceId":327,"CustomerId":1,"InvoiceDate":"2012-12-06T23:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"13.86"}
{"InvoiceId":328,"CustomerId":15,"InvoiceDate":"2012-12-14T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"0.99"}
{"InvoiceId":329,"CustomerId":16,"InvoiceDate":"2012-12-27T23:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"1.98"}
{"InvoiceId":330,"CustomerId":18,"InvoiceDate":"2012-12-27T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"1.98"}
{"InvoiceId":331,"CustomerId":20,"InvoiceDate":"2012-12-28T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"3.96"}
{"InvoiceId":332,"CustomerId":24,"InvoiceDate":"2012-12-29T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"5.94"}
{"InvoiceId":333,"CustomerId":30,"InvoiceDate":"2013-01-01T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"8.91"}
{"InvoiceId":334,"CustomerId":39,"InvoiceDate":"2013-01-06T23:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"13.86"}
{"InvoiceId":335,"CustomerId":53,"InvoiceDate":"2013-01-14T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"0.99"}
{"InvoiceId":336,"CustomerId":54,"InvoiceDate":"2013-01-27T23:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"1.98"}
{"InvoiceId":337,"CustomerId":56,"InvoiceDate":"2013-01-27T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"1.98"}
{"InvoiceId":338,"CustomerId":58,"InvoiceDate":"2013-01-28T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"3.96"}
{"InvoiceId":339,"CustomerId":3,"InvoiceDate":"2013-01-29T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"5.94"}
{"InvoiceId":340,"CustomerId":9,"InvoiceDate":"2013-02-01T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"8.91"}
{"InvoiceId":341,"CustomerId":18,"InvoiceDate":"2013-02-06T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"13.86"}
{"InvoiceId":342,"CustomerId":32,"InvoiceDate":"2013-02-14T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"0.99"}
{"InvoiceId":343,"CustomerId":33,"InvoiceDate":"2013-02-27T23:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"1.98"}
{"InvoiceId":344,"CustomerId":35,"InvoiceDate":"2013-02-27T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":345,"CustomerId":37,"InvoiceDate":"2013-02-28T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"3.96"}
{"InvoiceId":346,"CustomerId":41,"InvoiceDate":"2013-03-01T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"5.94"}
{"InvoiceId":347,"CustomerId":47,"InvoiceDate":"2013-03-04T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"8.91"}
{"InvoiceId":348,"CustomerId":56,"InvoiceDate":"2013-03-09T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"13.86"}
{"InvoiceId":349,"CustomerId":11,"InvoiceDate":"2013-03-17T23:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"0.99"}
{"InvoiceId":350,"CustomerId":12,"InvoiceDate":"2013-03-30T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"1.98"}
{"InvoiceId":351,"CustomerId":14,"InvoiceDate":"2013-03-30T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"1.98"}
{"InvoiceId":352,"CustomerId":16,"InvoiceDate":"2013-03-31T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"3.96"}
{"InvoiceId":353,"CustomerId":20,"InvoiceDate":"2013-04-01T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"5.94"}
{"InvoiceId":354,"CustomerId":26,"InvoiceDate":"2013-04-04T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"8.91"}
{"InvoiceId":355,"CustomerId":35,"InvoiceDate":"2013-04-09T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"13.86"}
{"InvoiceId":356,"CustomerId":49,"InvoiceDate":"2013-04-17T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"0.99"}
{"InvoiceId":357,"CustomerId":50,"InvoiceDate":"2013-04-30T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"1.98"}
{"InvoiceId":358,"CustomerId":52,"InvoiceDate":"2013-04-30T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"1.98"}
{"InvoiceId":359,"CustomerId":54,"InvoiceDate":"2013-05-01T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"3.96"}
{"InvoiceId":360,"CustomerId":58,"InvoiceDate":"2013-05-02T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"5.94"}
{"InvoiceId":361,"CustomerId":5,"InvoiceDate":"2013-05-05T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"8.91"}
{"InvoiceId":362,"CustomerId":14,"InvoiceDate":"2013-05-10T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"13.86"}
{"InvoiceId":363,"CustomerId":28,"InvoiceDate":"2013-05-18T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"0.99"}
{"InvoiceId":364,"CustomerId":29,"InvoiceDate":"2013-05-31T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"1.98"}
{"InvoiceId":365,"CustomerId":31,"InvoiceDate":"2013-05-31T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"1.98"}
{"InvoiceId":366,"CustomerId":33,"InvoiceDate":"2013-06-01T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"3.96"}
{"InvoiceId":367,"CustomerId":37,"InvoiceDate":"2013-06-02T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"5.94"}
{"InvoiceId":368,"CustomerId":43,"InvoiceDate":"2013-06-05T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"8.91"}
{"InvoiceId":369,"CustomerId":52,"InvoiceDate":"2013-06-10T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"13.86"}
{"InvoiceId":370,"CustomerId":7,"InvoiceDate":"2013-06-18T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"0.99"}
{"InvoiceId":371,"CustomerId":8,"InvoiceDate":"2013-07-01T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"1.98"}
{"InvoiceId":372,"CustomerId":10,"InvoiceDate":"2013-07-01T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"1.98"}
{"InvoiceId":373,"CustomerId":12,"InvoiceDate":"2013-07-02T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"3.96"}
{"InvoiceId":374,"CustomerId":16,"InvoiceDate":"2013-07-03T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"5.94"}
{"InvoiceId":375,"CustomerId":22,"InvoiceDate":"2013-07-06T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"8.91"}
{"InvoiceId":376,"CustomerId":31,"InvoiceDate":"2013-07-11T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"13.86"}
{"InvoiceId":377,"CustomerId":45,"InvoiceDate":"2013-07-19T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"0.99"}
{"InvoiceId":378,"CustomerId":46,"InvoiceDate":"2013-08-01T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"1.98"}
{"InvoiceId":379,"CustomerId":48,"InvoiceDate":"2013-08-01T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"1.98"}
{"InvoiceId":380,"CustomerId":50,"InvoiceDate":"2013-08-02T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"3.96"}
{"InvoiceId":381,"CustomerId":54,"InvoiceDate":"2013-08-03T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"5.94"}
{"InvoiceId":382,"CustomerId":1,"InvoiceDate":"2013-08-06T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"8.91"}
{"InvoiceId":383,"CustomerId":10,"InvoiceDate":"2013-08-11T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"13.86"}
{"InvoiceId":384,"CustomerId":24,"InvoiceDate":"2013-08-19T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"0.99"}
{"InvoiceId":385,"CustomerId":25,"InvoiceDate":"2013-09-01T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"1.98"}
{"InvoiceId":386,"CustomerId":27,"InvoiceDate":"2013-09-01T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"1.98"}
{"InvoiceId":387,"CustomerId":29,"InvoiceDate":"2013-09-02T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"3.96"}
{"InvoiceId":388,"CustomerId":33,"InvoiceDate":"2013-09-03T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"5.94"}
{"InvoiceId":389,"CustomerId":39,"InvoiceDate":"2013-09-06T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"8.91"}
{"InvoiceId":390,"CustomerId":48,"InvoiceDate":"2013-09-11T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"13.86"}
{"InvoiceId":391,"CustomerId":3,"InvoiceDate":"2013-09-19T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"0.99"}
{"InvoiceId":392,"CustomerId":4,"InvoiceDate":"2013-10-02T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"1.98"}
{"InvoiceId":393,"CustomerId":6,"InvoiceDate":"2013-10-02T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"1.98"}
{"InvoiceId":394,"CustomerId":8,"InvoiceDate":"2013-10-03T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"3.96"}
{"InvoiceId":395,"CustomerId":12,"InvoiceDate":"2013-10-04T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"5.94"}
{"InvoiceId":396,"CustomerId":18,"InvoiceDate":"2013-10-07T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"8.91"}
{"InvoiceId":397,"CustomerId":27,"InvoiceDate":"2013-10-12T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"13.86"}
{"InvoiceId":398,"CustomerId":41,"InvoiceDate":"2013-10-20T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"0.99"}
{"InvoiceId":399,"CustomerId":42,"InvoiceDate":"2013-11-02T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"1.98"}
{"InvoiceId":400,"CustomerId":44,"InvoiceDate":"2013-11-02T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"1.98"}
{"InvoiceId":401,"CustomerId":46,"InvoiceDate":"2013-11-03T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"3.96"}
{"InvoiceId":402,"CustomerId":50,"InvoiceDate":"2013-11-04T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"5.94"}
{"InvoiceId":403,"CustomerId":56,"InvoiceDate":"2013-11-07T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"8.91"}
{"InvoiceId":404,"CustomerId":6,"InvoiceDate":"2013-11-12T23:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"25.86"}
{"InvoiceId":405,"CustomerId":20,"InvoiceDate":"2013-11-20T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"0.99"}
{"InvoiceId":406,"CustomerId":21,"InvoiceDate":"2013-12-03T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"1.98"}
{"InvoiceId":407,"CustomerId":23,"InvoiceDate":"2013-12-03T23:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"1.98"}
{"InvoiceId":408,"CustomerId":25,"InvoiceDate":"2013-12-04T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"3.96"}
{"InvoiceId":409,"CustomerId":29,"InvoiceDate":"2013-12-05T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"5.94"}
{"InvoiceId":410,"CustomerId":35,"InvoiceDate":"2013-12-08T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"8.91"}
{"InvoiceId":411,"CustomerId":44,"InvoiceDate":"2013-12-13T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"13.86"}
{"InvoiceId":412,"CustomerId":58,"InvoiceDate":"2013-12-21T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.99"}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,5 @@
{"MediaTypeId":1,"Name":"MPEG audio file"}
{"MediaTypeId":2,"Name":"Protected AAC audio file"}
{"MediaTypeId":3,"Name":"Protected MPEG-4 video file"}
{"MediaTypeId":4,"Name":"Purchased AAC audio file"}
{"MediaTypeId":5,"Name":"AAC audio file"}
@@ -0,0 +1,18 @@
{"PlaylistId":1,"Name":"Music"}
{"PlaylistId":2,"Name":"Movies"}
{"PlaylistId":3,"Name":"TV Shows"}
{"PlaylistId":4,"Name":"Audiobooks"}
{"PlaylistId":5,"Name":"90’s Music"}
{"PlaylistId":6,"Name":"Audiobooks"}
{"PlaylistId":7,"Name":"Movies"}
{"PlaylistId":8,"Name":"Music"}
{"PlaylistId":9,"Name":"Music Videos"}
{"PlaylistId":10,"Name":"TV Shows"}
{"PlaylistId":11,"Name":"Brazilian Music"}
{"PlaylistId":12,"Name":"Classical"}
{"PlaylistId":13,"Name":"Classical 101 - Deep Cuts"}
{"PlaylistId":14,"Name":"Classical 101 - Next Steps"}
{"PlaylistId":15,"Name":"Classical 101 - The Basics"}
{"PlaylistId":16,"Name":"Grunge"}
{"PlaylistId":17,"Name":"Heavy Metal Classic"}
{"PlaylistId":18,"Name":"On-The-Go 1"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+176
View File
@@ -0,0 +1,176 @@
/*******************************************************************************
Create Tables
********************************************************************************/
CREATE TABLE `Album`
(
`AlbumId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(160) NOT NULL,
`ArtistId` INT NOT NULL,
CONSTRAINT `PK_Album` PRIMARY KEY (`AlbumId`)
);
CREATE TABLE `Artist`
(
`ArtistId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(120),
CONSTRAINT `PK_Artist` PRIMARY KEY (`ArtistId`)
);
CREATE TABLE `Customer`
(
`CustomerId` INT NOT NULL AUTO_INCREMENT,
`FirstName` NVARCHAR(40) NOT NULL,
`LastName` NVARCHAR(20) NOT NULL,
`MiddleName` NVARCHAR(20) NOT NULL,
`Company` NVARCHAR(80),
`Street` NVARCHAR(70),
`City` NVARCHAR(40),
`State` NVARCHAR(40),
`Country` NVARCHAR(40),
`PostalCode` NVARCHAR(10),
`Phone` NVARCHAR(24),
`Fax` NVARCHAR(24),
`Email` NVARCHAR(60) NOT NULL,
`SupportRepId` INT,
CONSTRAINT `PK_Customer` PRIMARY KEY (`CustomerId`)
);
CREATE TABLE `Employee`
(
`EmployeeId` INT NOT NULL AUTO_INCREMENT,
`LastName` NVARCHAR(20) NOT NULL,
`FirstName` NVARCHAR(20) NOT NULL,
`Title` NVARCHAR(30),
`ReportsTo` INT,
`BirthDate` DATETIME,
`HireDate` DATETIME,
`Address` NVARCHAR(70),
`City` NVARCHAR(40),
`State` NVARCHAR(40),
`Country` NVARCHAR(40),
`PostalCode` NVARCHAR(10),
`Phone` NVARCHAR(24),
`Fax` NVARCHAR(24),
`Email` NVARCHAR(60),
CONSTRAINT `PK_Employee` PRIMARY KEY (`EmployeeId`)
);
CREATE TABLE `Genre`
(
`GenreId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(120),
CONSTRAINT `PK_Genre` PRIMARY KEY (`GenreId`)
);
CREATE TABLE `Genre_Backup`
(
`GenreId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(120),
CONSTRAINT `PK_GenreBackup` PRIMARY KEY (`GenreId`)
);
CREATE TABLE `Invoice`
(
`InvoiceId` INT NOT NULL AUTO_INCREMENT,
`CustomerId` INT NOT NULL,
`InvoiceDate` DATETIME NOT NULL,
`BillingAddress` NVARCHAR(70),
`BillingCity` NVARCHAR(40),
`BillingState` NVARCHAR(40),
`BillingCountry` NVARCHAR(40),
`BillingPostalCode` NVARCHAR(10),
`Total` NUMERIC(10,2) NOT NULL,
CONSTRAINT `PK_Invoice` PRIMARY KEY (`InvoiceId`)
);
CREATE TABLE `MediaType`
(
`MediaTypeId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(120),
CONSTRAINT `PK_MediaType` PRIMARY KEY (`MediaTypeId`)
);
CREATE TABLE `Playlist`
(
`PlaylistId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(120),
CONSTRAINT `PK_Playlist` PRIMARY KEY (`PlaylistId`)
);
CREATE TABLE `PlaylistTrack`
(
`PlaylistId` INT NOT NULL,
`TrackId` INT NOT NULL,
CONSTRAINT `PK_PlaylistTrack` PRIMARY KEY (`PlaylistId`, `TrackId`)
);
CREATE TABLE `Track`
(
`TrackId` INT NOT NULL AUTO_INCREMENT,
`Name` NVARCHAR(200) NOT NULL,
`AlbumId` INT,
`MediaTypeId` INT NOT NULL,
`GenreId` INT,
`Composer` NVARCHAR(220),
`Milliseconds` INT NOT NULL,
`Bytes` INT,
`UnitPrice` NUMERIC(10,2) NOT NULL,
CONSTRAINT `PK_Track` PRIMARY KEY (`TrackId`)
);
/*******************************************************************************
Create Primary Key Unique Indexes
********************************************************************************/
/*******************************************************************************
Create Foreign Keys
********************************************************************************/
ALTER TABLE `Album` ADD CONSTRAINT `FK_AlbumArtistId`
FOREIGN KEY (`ArtistId`) REFERENCES `Artist` (`ArtistId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_AlbumArtistId` ON `Album` (`ArtistId`);
ALTER TABLE `Customer` ADD CONSTRAINT `FK_CustomerSupportRepId`
FOREIGN KEY (`SupportRepId`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_CustomerSupportRepId` ON `Customer` (`SupportRepId`);
ALTER TABLE `Employee` ADD CONSTRAINT `FK_EmployeeReportsTo`
FOREIGN KEY (`ReportsTo`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_EmployeeReportsTo` ON `Employee` (`ReportsTo`);
ALTER TABLE `Invoice` ADD CONSTRAINT `FK_InvoiceCustomerId`
FOREIGN KEY (`CustomerId`) REFERENCES `Customer` (`CustomerId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_InvoiceCustomerId` ON `Invoice` (`CustomerId`);
ALTER TABLE `PlaylistTrack` ADD CONSTRAINT `FK_PlaylistTrackPlaylistId`
FOREIGN KEY (`PlaylistId`) REFERENCES `Playlist` (`PlaylistId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_PlaylistTrackPlaylistId` ON `PlaylistTrack` (`PlaylistId`);
ALTER TABLE `PlaylistTrack` ADD CONSTRAINT `FK_PlaylistTrackTrackId`
FOREIGN KEY (`TrackId`) REFERENCES `Track` (`TrackId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_PlaylistTrackTrackId` ON `PlaylistTrack` (`TrackId`);
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackAlbumId`
FOREIGN KEY (`AlbumId`) REFERENCES `Album` (`AlbumId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_TrackAlbumId` ON `Track` (`AlbumId`);
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackGenreId`
FOREIGN KEY (`GenreId`) REFERENCES `Genre` (`GenreId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_TrackGenreId` ON `Track` (`GenreId`);
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackMediaTypeId`
FOREIGN KEY (`MediaTypeId`) REFERENCES `MediaType` (`MediaTypeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_TrackMediaTypeId` ON `Track` (`MediaTypeId`);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
{"data":{"structure":{"columns":[{"columnName":"Month"},{"columnName":"Total"},{"columnName":"Invoices"}]},"rows":[{"Month":"2021-01","Total":"35.64","Invoices":"6"},{"Month":"2021-02","Total":"37.62","Invoices":"7"},{"Month":"2021-03","Total":"37.62","Invoices":"7"},{"Month":"2021-04","Total":"37.62","Invoices":"7"},{"Month":"2021-05","Total":"37.62","Invoices":"7"},{"Month":"2021-06","Total":"37.62","Invoices":"7"},{"Month":"2021-07","Total":"37.62","Invoices":"7"},{"Month":"2021-08","Total":"37.62","Invoices":"7"},{"Month":"2021-09","Total":"37.62","Invoices":"7"},{"Month":"2021-10","Total":"37.62","Invoices":"7"},{"Month":"2021-11","Total":"37.62","Invoices":"7"},{"Month":"2021-12","Total":"37.62","Invoices":"7"},{"Month":"2022-01","Total":"52.62","Invoices":"7"},{"Month":"2022-02","Total":"46.62","Invoices":"7"},{"Month":"2022-03","Total":"44.62","Invoices":"7"},{"Month":"2022-04","Total":"37.62","Invoices":"7"},{"Month":"2022-05","Total":"37.62","Invoices":"7"},{"Month":"2022-06","Total":"37.62","Invoices":"7"},{"Month":"2022-07","Total":"37.62","Invoices":"7"},{"Month":"2022-08","Total":"37.62","Invoices":"7"},{"Month":"2022-09","Total":"36.63","Invoices":"6"},{"Month":"2022-10","Total":"37.62","Invoices":"7"},{"Month":"2022-11","Total":"37.62","Invoices":"7"},{"Month":"2022-12","Total":"37.62","Invoices":"7"},{"Month":"2023-01","Total":"37.62","Invoices":"7"},{"Month":"2023-02","Total":"37.62","Invoices":"7"},{"Month":"2023-03","Total":"37.62","Invoices":"7"},{"Month":"2023-04","Total":"51.62","Invoices":"7"},{"Month":"2023-05","Total":"42.62","Invoices":"7"},{"Month":"2023-06","Total":"50.62","Invoices":"7"},{"Month":"2023-07","Total":"37.62","Invoices":"7"},{"Month":"2023-08","Total":"37.62","Invoices":"7"},{"Month":"2023-09","Total":"37.62","Invoices":"7"},{"Month":"2023-10","Total":"37.62","Invoices":"7"},{"Month":"2023-11","Total":"23.76","Invoices":"6"},{"Month":"2023-12","Total":"37.62","Invoices":"7"},{"Month":"2024-01","Total":"37.62","Invoices":"7"},{"Month":"2024-02","Total":"37.62","Invoices":"7"},{"Month":"2024-03","Total":"37.62","Invoices":"7"},{"Month":"2024-04","Total":"37.62","Invoices":"7"},{"Month":"2024-05","Total":"37.62","Invoices":"7"},{"Month":"2024-06","Total":"37.62","Invoices":"7"},{"Month":"2024-07","Total":"39.62","Invoices":"7"},{"Month":"2024-08","Total":"47.62","Invoices":"7"},{"Month":"2024-09","Total":"46.71","Invoices":"6"},{"Month":"2024-10","Total":"42.62","Invoices":"7"},{"Month":"2024-11","Total":"37.62","Invoices":"7"},{"Month":"2024-12","Total":"37.62","Invoices":"7"},{"Month":"2025-01","Total":"37.62","Invoices":"7"},{"Month":"2025-02","Total":"27.72","Invoices":"5"},{"Month":"2025-03","Total":"37.62","Invoices":"7"},{"Month":"2025-04","Total":"33.66","Invoices":"5"},{"Month":"2025-05","Total":"37.62","Invoices":"7"},{"Month":"2025-06","Total":"37.62","Invoices":"7"},{"Month":"2025-07","Total":"37.62","Invoices":"7"},{"Month":"2025-08","Total":"37.62","Invoices":"7"},{"Month":"2025-09","Total":"37.62","Invoices":"7"},{"Month":"2025-10","Total":"37.62","Invoices":"7"},{"Month":"2025-11","Total":"49.62","Invoices":"7"},{"Month":"2025-12","Total":"38.62","Invoices":"7"}]},"config":{"chartType":"line","labelColumn":"Month","dataColumn_Total":true,"dataColumn_Invoices":false,"truncateFrom":"begin","dataColumn_Month":false,"dataColumnColor_Total":"gold"}}
+1
View File
@@ -0,0 +1 @@
{"data":{"structure":{"columns":[{"columnName":"OS"},{"columnName":"Downloads"}]},"rows":[{"OS":"Windows","Downloads":1724},{"OS":"MaxOS","Downloads":711},{"OS":"Linux","Downloads":445},{"OS":"iOS","Downloads":105},{"OS":"Android","Downloads":77}]},"config":{"chartType":"pie","labelColumn":"OS","dataColumn_Downloads":true,"showRelativeValues":false}}
File diff suppressed because one or more lines are too long
+592
View File
@@ -0,0 +1,592 @@
{
"tables": [
{
"pureName": "InvoiceLine",
"tableRowCount": "2240",
"tableEngine": "InnoDB",
"objectComment": "",
"modifyDate": "2025-01-30 07:20:38",
"objectId": "InvoiceLine",
"contentHash": "2025-01-30 07:20:38",
"columns": [
{
"pureName": "InvoiceLine",
"notNull": true,
"autoIncrement": true,
"columnName": "InvoiceLineId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "InvoiceLine",
"notNull": true,
"autoIncrement": false,
"columnName": "InvoiceId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "InvoiceLine",
"notNull": true,
"autoIncrement": false,
"columnName": "TrackId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "InvoiceLine",
"notNull": true,
"autoIncrement": false,
"columnName": "UnitPrice",
"columnComment": "",
"dataType": "decimal(10,2)",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "InvoiceLine",
"notNull": true,
"autoIncrement": false,
"columnName": "Quantity",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
}
],
"primaryKey": {
"constraintName": "PRIMARY",
"pureName": "InvoiceLine",
"constraintType": "primaryKey",
"columns": [
{
"columnName": "InvoiceLineId"
}
]
},
"foreignKeys": [
{
"constraintName": "FK_InvoiceLineInvoiceId",
"constraintType": "foreignKey",
"pureName": "InvoiceLine",
"refTableName": "Invoice",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "InvoiceId",
"refColumnName": "InvoiceId"
}
]
},
{
"constraintName": "FK_InvoiceLineTrackId",
"constraintType": "foreignKey",
"pureName": "InvoiceLine",
"refTableName": "Track",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "TrackId",
"refColumnName": "TrackId"
}
]
}
],
"indexes": [
{
"constraintName": "IFK_InvoiceLineInvoiceId",
"indexType": "BTREE",
"isUnique": false,
"columns": [
{
"columnName": "InvoiceId",
"isDescending": 0
}
],
"pureName": "InvoiceLine",
"constraintType": "index"
},
{
"constraintName": "IFK_InvoiceLineTrackId",
"indexType": "BTREE",
"isUnique": false,
"columns": [
{
"columnName": "TrackId",
"isDescending": 0
}
],
"pureName": "InvoiceLine",
"constraintType": "index"
}
],
"uniques": [],
"engine": "mysql@dbgate-plugin-mysql",
"dependencies": [],
"objectTypeField": "tables",
"checks": [],
"conid": "mysql",
"database": "MyChinook",
"designerId": "InvoiceLine-61eb0ba0-dedc-11ef-acf9-b7e3c0869b02",
"left": 513,
"top": 247,
"alias": null
},
{
"pureName": "Customer",
"tableRowCount": "59",
"tableEngine": "InnoDB",
"objectComment": "",
"modifyDate": "2025-01-30 07:20:37",
"objectId": "Customer",
"contentHash": "2025-01-30 07:20:37",
"columns": [
{
"pureName": "Customer",
"notNull": true,
"autoIncrement": true,
"columnName": "CustomerId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": true,
"autoIncrement": false,
"columnName": "FirstName",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": true,
"autoIncrement": false,
"columnName": "LastName",
"columnComment": "",
"dataType": "varchar(20)",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "Company",
"columnComment": "",
"dataType": "varchar(80)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "Address",
"columnComment": "",
"dataType": "varchar(70)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "City",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "State",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "Country",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "PostalCode",
"columnComment": "",
"dataType": "varchar(10)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "Phone",
"columnComment": "",
"dataType": "varchar(24)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "Fax",
"columnComment": "",
"dataType": "varchar(24)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": true,
"autoIncrement": false,
"columnName": "Email",
"columnComment": "",
"dataType": "varchar(60)",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Customer",
"notNull": false,
"autoIncrement": false,
"columnName": "SupportRepId",
"columnComment": "",
"dataType": "int",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
}
],
"primaryKey": {
"constraintName": "PRIMARY",
"pureName": "Customer",
"constraintType": "primaryKey",
"columns": [
{
"columnName": "CustomerId"
}
]
},
"foreignKeys": [
{
"constraintName": "FK_CustomerSupportRepId",
"constraintType": "foreignKey",
"pureName": "Customer",
"refTableName": "Employee",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "SupportRepId",
"refColumnName": "EmployeeId"
}
]
}
],
"indexes": [
{
"constraintName": "IFK_CustomerSupportRepId",
"indexType": "BTREE",
"isUnique": false,
"columns": [
{
"columnName": "SupportRepId",
"isDescending": 0
}
],
"pureName": "Customer",
"constraintType": "index"
}
],
"uniques": [],
"engine": "mysql@dbgate-plugin-mysql",
"dependencies": [
{
"constraintName": "FK_InvoiceCustomerId",
"constraintType": "foreignKey",
"pureName": "Invoice",
"refTableName": "Customer",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "CustomerId",
"refColumnName": "CustomerId"
}
]
}
],
"objectTypeField": "tables",
"checks": [],
"conid": "mysql",
"database": "MyChinook",
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
"left": 50,
"top": 50
},
{
"pureName": "Invoice",
"tableRowCount": "412",
"tableEngine": "InnoDB",
"objectComment": "",
"modifyDate": "2025-01-30 07:20:38",
"objectId": "Invoice",
"contentHash": "2025-01-30 07:20:38",
"columns": [
{
"pureName": "Invoice",
"notNull": true,
"autoIncrement": true,
"columnName": "InvoiceId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": true,
"autoIncrement": false,
"columnName": "CustomerId",
"columnComment": "",
"dataType": "int",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": true,
"autoIncrement": false,
"columnName": "InvoiceDate",
"columnComment": "",
"dataType": "datetime",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": false,
"autoIncrement": false,
"columnName": "BillingAddress",
"columnComment": "",
"dataType": "varchar(70)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": false,
"autoIncrement": false,
"columnName": "BillingCity",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": false,
"autoIncrement": false,
"columnName": "BillingState",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": false,
"autoIncrement": false,
"columnName": "BillingCountry",
"columnComment": "",
"dataType": "varchar(40)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": false,
"autoIncrement": false,
"columnName": "BillingPostalCode",
"columnComment": "",
"dataType": "varchar(10)",
"defaultValue": "NULL",
"isUnsigned": false,
"isZerofill": false
},
{
"pureName": "Invoice",
"notNull": true,
"autoIncrement": false,
"columnName": "Total",
"columnComment": "",
"dataType": "decimal(10,2)",
"defaultValue": null,
"isUnsigned": false,
"isZerofill": false
}
],
"primaryKey": {
"constraintName": "PRIMARY",
"pureName": "Invoice",
"constraintType": "primaryKey",
"columns": [
{
"columnName": "InvoiceId"
}
]
},
"foreignKeys": [
{
"constraintName": "FK_InvoiceCustomerId",
"constraintType": "foreignKey",
"pureName": "Invoice",
"refTableName": "Customer",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "CustomerId",
"refColumnName": "CustomerId"
}
]
}
],
"indexes": [
{
"constraintName": "IFK_InvoiceCustomerId",
"indexType": "BTREE",
"isUnique": false,
"columns": [
{
"columnName": "CustomerId",
"isDescending": 0
}
],
"pureName": "Invoice",
"constraintType": "index"
}
],
"uniques": [],
"engine": "mysql@dbgate-plugin-mysql",
"dependencies": [
{
"constraintName": "FK_InvoiceLineInvoiceId",
"constraintType": "foreignKey",
"pureName": "InvoiceLine",
"refTableName": "Invoice",
"updateAction": "NO ACTION",
"deleteAction": "NO ACTION",
"columns": [
{
"columnName": "InvoiceId",
"refColumnName": "InvoiceId"
}
]
}
],
"objectTypeField": "tables",
"checks": [],
"conid": "mysql",
"database": "MyChinook",
"designerId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
"left": 279,
"top": 112,
"alias": null
}
],
"references": [
{
"designerId": "undefined-609cb9b1-dedc-11ef-acf9-b7e3c0869b02",
"sourceId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
"targetId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
"joinType": "INNER JOIN",
"columns": [
{
"source": "CustomerId",
"target": "CustomerId"
}
]
},
{
"designerId": "undefined-61eb32b0-dedc-11ef-acf9-b7e3c0869b02",
"sourceId": "InvoiceLine-61eb0ba0-dedc-11ef-acf9-b7e3c0869b02",
"targetId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
"joinType": "LEFT JOIN",
"columns": [
{
"source": "InvoiceId",
"target": "InvoiceId"
}
]
}
],
"columns": [
{
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
"columnName": "LastName",
"isOutput": true,
"filter": "NOT NULL",
"sortOrder": 1
},
{
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
"columnName": "FirstName",
"isOutput": true,
"sortOrder": 2
},
{
"designerId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
"columnName": "InvoiceDate",
"isOutput": true
}
]
}
+16
View File
@@ -0,0 +1,16 @@
CREATE TABLE "public"."cities" (
"id" SERIAL,
"name" VARCHAR(250) NULL,
"location" VARCHAR(500) NULL,
CONSTRAINT "PK_cities" PRIMARY KEY ("id")
);
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (1, 'Praha', 'POLYGON((14.2 50,14.2 50.15,14.6 50.15,14.6 50,14.2 50))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (2, 'Brno', 'POLYGON((16.5 49.1,16.5 49.3,16.8 49.3,16.8 49.1,16.5 49.1))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (3, 'Ostrava', 'POLYGON((18.15 49.7,18.15 49.9,18.4 49.9,18.4 49.7,18.15 49.7))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (4, 'Plzeň', 'POLYGON((13.3 49.7,13.3 49.8,13.5 49.8,13.5 49.7,13.3 49.7))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (5, 'Olomouc', 'POLYGON((17.2 49.5,17.2 49.65,17.3 49.65,17.3 49.5,17.2 49.5))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (6, 'Liberec', 'POLYGON((14.9 50.7,14.9 50.8,15.1 50.8,15.1 50.7,14.9 50.7))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (7, 'České Budějovice', 'POLYGON((14.4 48.9,14.4 49,14.6 49,14.6 48.9,14.4 48.9))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (8, 'Hradec Králové', 'POLYGON((15.7 50.1,15.7 50.3,16 50.3,16 50.1,15.7 50.1))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (9, 'Pardubice', 'POLYGON((15.7 49.9,15.7 50.1,15.9 50.1,15.9 49.9,15.7 49.9))');
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (10, 'Ústí nad Labem', 'POLYGON((13.9 50.6,13.9 50.7,14.2 50.7,14.2 50.6,13.9 50.6))');
@@ -0,0 +1,13 @@
{"__isStreamHeader":true,"pureName":"addresses","tableRowCount":"12","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:32","objectId":"addresses","contentHash":"2025-02-03 02:56:32","columns":[{"notNull":true,"autoIncrement":true,"columnName":"address_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"customer_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"line1","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":false,"autoIncrement":false,"columnName":"line2","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"city","columnComment":"","dataType":"varchar(40)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"state","columnComment":"","dataType":"varchar(2)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"zip_code","columnComment":"","dataType":"varchar(10)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"phone","columnComment":"","dataType":"varchar(12)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"disabled","columnComment":"","dataType":"tinyint","defaultValue":"0","isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"addresses","constraintType":"primaryKey","columns":[{"columnName":"address_id"}]},"foreignKeys":[{"constraintName":"addresses_fk_customers","constraintType":"foreignKey","pureName":"addresses","refTableName":"customers","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"customer_id","refColumnName":"customer_id"}]}],"indexes":[{"constraintName":"addresses_fk_customers","indexType":"BTREE","isUnique":false,"columns":[{"columnName":"customer_id","isDescending":0}]}],"uniques":[],"engine":"mysql@dbgate-plugin-mysql"}
{"address_id":1,"customer_id":1,"line1":"100 East Ridgewood Ave.","line2":"","city":"Paramus","state":"NJ","zip_code":"07652","phone":"201-653-4472","disabled":0}
{"address_id":2,"customer_id":1,"line1":"21 Rosewood Rd.","line2":"","city":"Woodcliff Lake","state":"NJ","zip_code":"07677","phone":"201-653-4472","disabled":0}
{"address_id":3,"customer_id":2,"line1":"16285 Wendell St.","line2":"","city":"Omaha","state":"NE","zip_code":"68135","phone":"402-896-2576","disabled":0}
{"address_id":4,"customer_id":3,"line1":"19270 NW Cornell Rd.","line2":"","city":"Beaverton","state":"OR","zip_code":"97006","phone":"503-654-1291","disabled":0}
{"address_id":5,"customer_id":4,"line1":"186 Vermont St.","line2":"Apt. 2","city":"San Francisco","state":"CA","zip_code":"94110","phone":"415-292-6651","disabled":0}
{"address_id":6,"customer_id":4,"line1":"1374 46th Ave.","line2":"","city":"San Francisco","state":"CA","zip_code":"94129","phone":"415-292-6651","disabled":0}
{"address_id":7,"customer_id":5,"line1":"6982 Palm Ave.","line2":"","city":"Fresno","state":"CA","zip_code":"93711","phone":"559-431-2398","disabled":0}
{"address_id":8,"customer_id":6,"line1":"23 Mountain View St.","line2":"","city":"Denver","state":"CO","zip_code":"80208","phone":"303-912-3852","disabled":0}
{"address_id":9,"customer_id":7,"line1":"7361 N. 41st St.","line2":"Apt. B","city":"New York","state":"NY","zip_code":"10012","phone":"212-335-2093","disabled":0}
{"address_id":10,"customer_id":7,"line1":"3829 Broadway Ave.","line2":"Suite 2","city":"New York","state":"NY","zip_code":"10012","phone":"212-239-1208","disabled":0}
{"address_id":11,"customer_id":8,"line1":"2381 Buena Vista St.","line2":"","city":"Los Angeles","state":"CA","zip_code":"90023","phone":"213-772-5033","disabled":0}
{"address_id":12,"customer_id":8,"line1":"291 W. Hollywood Blvd.","line2":"","city":"Los Angeles","state":"CA","zip_code":"90024","phone":"213-391-2938","disabled":0}
@@ -0,0 +1,46 @@
name: addresses
columns:
- name: address_id
type: int
default: null
autoIncrement: true
notNull: true
- name: customer_id
type: int
default: null
notNull: true
references: customers
- name: line1
type: varchar(60)
default: null
notNull: true
- name: line2
type: varchar(60)
default: null
- name: city
type: varchar(40)
default: null
notNull: true
- name: state
type: varchar(2)
default: null
notNull: true
- name: zip_code
type: varchar(10)
default: null
notNull: true
- name: phone
type: varchar(12)
default: null
notNull: true
- name: disabled
type: int
default: 0
notNull: true
primaryKey:
- address_id
indexes:
- name: addresses_fk_customers
unique: false
columns:
- customer_id
@@ -0,0 +1,4 @@
{"__isStreamHeader":true,"pureName":"administrators","tableRowCount":"3","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:33","objectId":"administrators","contentHash":"2025-02-03 02:56:33","columns":[{"notNull":true,"autoIncrement":true,"columnName":"admin_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"email_address","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"password","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"first_name","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"last_name","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"administrators","constraintType":"primaryKey","columns":[{"columnName":"admin_id"}]},"foreignKeys":[],"indexes":[],"uniques":[],"engine":"mysql@dbgate-plugin-mysql"}
{"admin_id":1,"email_address":"admin@myguitarshop.com","password":"6a718fbd768c2378b511f8249b54897f940e9022","first_name":"Admin","last_name":"User"}
{"admin_id":2,"email_address":"joel@murach.com","password":"971e95957d3b74d70d79c20c94e9cd91b85f7aae","first_name":"Joel","last_name":"Murach"}
{"admin_id":3,"email_address":"mike@murach.com","password":"3f2975c819cefc686282456aeae3a137bf896ee8","first_name":"Mike","last_name":"Murach"}
@@ -0,0 +1,25 @@
name: administrators
columns:
- name: admin_id
type: int
default: null
autoIncrement: true
notNull: true
- name: email_address
type: varchar(255)
default: null
notNull: true
- name: password
type: varchar(255)
default: null
notNull: true
- name: first_name
type: varchar(255)
default: null
notNull: true
- name: last_name
type: varchar(255)
default: null
notNull: true
primaryKey:
- admin_id
@@ -0,0 +1,5 @@
{"__isStreamHeader":true,"pureName":"categories","tableRowCount":"4","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:32","objectId":"categories","contentHash":"2025-02-03 02:56:32","columns":[{"notNull":true,"autoIncrement":true,"columnName":"category_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"category_name","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"categories","constraintType":"primaryKey","columns":[{"columnName":"category_id"}]},"foreignKeys":[],"indexes":[],"uniques":[{"constraintName":"category_name","columns":[{"columnName":"category_name"}]}],"engine":"mysql@dbgate-plugin-mysql"}
{"category_id":2,"category_name":"Basses"}
{"category_id":3,"category_name":"Drums"}
{"category_id":1,"category_name":"Guitars"}
{"category_id":4,"category_name":"Keyboards"}
@@ -0,0 +1,12 @@
name: categories
columns:
- name: category_id
type: int
default: null
notNull: true
- name: category_name
type: varchar(255)
default: null
notNull: true
primaryKey:
- category_id
@@ -0,0 +1,9 @@
{"__isStreamHeader":true,"pureName":"customers","tableRowCount":"8","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:32","objectId":"customers","contentHash":"2025-02-03 02:56:32","columns":[{"notNull":true,"autoIncrement":true,"columnName":"customer_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"email_address","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"password","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"first_name","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"last_name","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":false,"autoIncrement":false,"columnName":"shipping_address_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":false,"autoIncrement":false,"columnName":"billing_address_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"customers","constraintType":"primaryKey","columns":[{"columnName":"customer_id"}]},"foreignKeys":[],"indexes":[],"uniques":[{"constraintName":"email_address","columns":[{"columnName":"email_address"}]}],"engine":"mysql@dbgate-plugin-mysql"}
{"customer_id":1,"email_address":"allan.sherwood@yahoo.com","password":"650215acec746f0e32bdfff387439eefc1358737","first_name":"Allan","last_name":"Sherwood","shipping_address_id":1,"billing_address_id":2}
{"customer_id":2,"email_address":"barryz@gmail.com","password":"3f563468d42a448cb1e56924529f6e7bbe529cc7","first_name":"Barry","last_name":"Zimmer","shipping_address_id":3,"billing_address_id":3}
{"customer_id":3,"email_address":"christineb@solarone.com","password":"ed19f5c0833094026a2f1e9e6f08a35d26037066","first_name":"Christine","last_name":"Brown","shipping_address_id":4,"billing_address_id":4}
{"customer_id":4,"email_address":"david.goldstein@hotmail.com","password":"b444ac06613fc8d63795be9ad0beaf55011936ac","first_name":"David","last_name":"Goldstein","shipping_address_id":5,"billing_address_id":6}
{"customer_id":5,"email_address":"erinv@gmail.com","password":"109f4b3c50d7b0df729d299bc6f8e9ef9066971f","first_name":"Erin","last_name":"Valentino","shipping_address_id":7,"billing_address_id":7}
{"customer_id":6,"email_address":"frankwilson@sbcglobal.net","password":"3ebfa301dc59196f18593c45e519287a23297589","first_name":"Frank Lee","last_name":"Wilson","shipping_address_id":8,"billing_address_id":8}
{"customer_id":7,"email_address":"gary_hernandez@yahoo.com","password":"1ff2b3704aede04eecb51e50ca698efd50a1379b","first_name":"Gary","last_name":"Hernandez","shipping_address_id":9,"billing_address_id":10}
{"customer_id":8,"email_address":"heatheresway@mac.com","password":"911ddc3b8f9a13b5499b6bc4638a2b4f3f68bf23","first_name":"Heather","last_name":"Esway","shipping_address_id":11,"billing_address_id":12}
@@ -0,0 +1,31 @@
name: customers
columns:
- name: customer_id
type: int
default: null
autoIncrement: true
notNull: true
- name: email_address
type: varchar(255)
default: null
notNull: true
- name: password
type: varchar(60)
default: null
notNull: true
- name: first_name
type: varchar(60)
default: null
notNull: true
- name: last_name
type: varchar(60)
default: null
notNull: true
- name: shipping_address_id
type: int
default: null
- name: billing_address_id
type: int
default: null
primaryKey:
- customer_id
@@ -0,0 +1,13 @@
{"__isStreamHeader":true,"pureName":"order_items","tableRowCount":"12","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:33","objectId":"order_items","contentHash":"2025-02-03 02:56:33","columns":[{"notNull":true,"autoIncrement":true,"columnName":"item_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"order_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"product_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"item_price","columnComment":"","dataType":"decimal(10,2)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"discount_amount","columnComment":"","dataType":"decimal(10,2)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"quantity","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"order_items","constraintType":"primaryKey","columns":[{"columnName":"item_id"}]},"foreignKeys":[{"constraintName":"items_fk_products","constraintType":"foreignKey","pureName":"order_items","refTableName":"products","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"product_id","refColumnName":"product_id"}]},{"constraintName":"items_fk_orders","constraintType":"foreignKey","pureName":"order_items","refTableName":"orders","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"order_id","refColumnName":"order_id"}]}],"indexes":[{"constraintName":"items_fk_orders","indexType":"BTREE","isUnique":false,"columns":[{"columnName":"order_id","isDescending":0}]},{"constraintName":"items_fk_products","indexType":"BTREE","isUnique":false,"columns":[{"columnName":"product_id","isDescending":0}]}],"uniques":[],"engine":"mysql@dbgate-plugin-mysql"}
{"item_id":1,"order_id":1,"product_id":2,"item_price":"1199.00","discount_amount":"359.70","quantity":1}
{"item_id":2,"order_id":2,"product_id":4,"item_price":"489.99","discount_amount":"186.20","quantity":1}
{"item_id":3,"order_id":3,"product_id":3,"item_price":"2517.00","discount_amount":"1308.84","quantity":1}
{"item_id":4,"order_id":3,"product_id":6,"item_price":"415.00","discount_amount":"161.85","quantity":1}
{"item_id":5,"order_id":4,"product_id":2,"item_price":"1199.00","discount_amount":"359.70","quantity":2}
{"item_id":6,"order_id":5,"product_id":5,"item_price":"299.00","discount_amount":"0.00","quantity":1}
{"item_id":7,"order_id":6,"product_id":5,"item_price":"299.00","discount_amount":"0.00","quantity":1}
{"item_id":8,"order_id":7,"product_id":1,"item_price":"699.00","discount_amount":"209.70","quantity":1}
{"item_id":9,"order_id":7,"product_id":7,"item_price":"799.99","discount_amount":"240.00","quantity":1}
{"item_id":10,"order_id":7,"product_id":9,"item_price":"699.99","discount_amount":"210.00","quantity":1}
{"item_id":11,"order_id":8,"product_id":10,"item_price":"799.99","discount_amount":"120.00","quantity":1}
{"item_id":12,"order_id":9,"product_id":1,"item_price":"699.00","discount_amount":"209.70","quantity":1}
@@ -0,0 +1,40 @@
name: order_items
columns:
- name: item_id
type: int
default: null
autoIncrement: true
notNull: true
- name: order_id
type: int
default: null
notNull: true
references: orders
- name: product_id
type: int
default: null
notNull: true
references: products
- name: item_price
type: decimal(10,2)
default: null
notNull: true
- name: discount_amount
type: decimal(10,2)
default: null
notNull: true
- name: quantity
type: int
default: null
notNull: true
primaryKey:
- item_id
indexes:
- name: items_fk_orders
unique: false
columns:
- order_id
- name: items_fk_products
unique: false
columns:
- product_id

Some files were not shown because too many files have changed in this diff Show More