v1.0.0-alpha.2
Pre-releaseThis release implements a breaking upgrade to the Aqua Protocol from v1.0 to v1.1,
which adds new API endpoints, content slots, transclusion and slots
verification, JSON export/import, file export/import. The witness data stored
in the DB are now identified by their witness event verification hash. This is
to ensure that the witness data are unique, and are represented the same way
across Aqua hosts.
The following API endpoints are now deprecated:
/verify_page
/get_page_all_revs
/get_page_last_rev
(still used by the Chrome extension, but will be phased out soon)/request_merkle_proof
The following new API endpoints replace the deprecated endpoints:
/get_revision
/get_hash_chain_info
/get_revision_hashes
There is an import API
/import
allows to import a single revision, this is subject to change to/import_revision
We are switching to JSON export/import instead of patching MediaWiki's
export/import for the following reasons:
- to abstract out the data interchange format away from MediaWiki-specific design.
- to support embedding files in base64-encoded strings.
- to embed custom transclusion and slots structure.
Notable commits:
- 🎸 Implement verification_context table column (793d783)
- 🎸 Remove exclusion of file pages from domain manifest (dddb71c)
- translate: Add german translations for new messages (f6877b9)
- feat: Immutable links (028c654)
Commits for the API endpoints:
- 🎸 Implement get_hash_chain_info API endpoint (a9698e5)
- 🎸 Implement get_revision API endpoint (0aeebe7)
- 🎸 Implement get_revision_hashes API endpoint (f9b2f37)
Notable Breaking changes commits:
- 🎸 BREAKING: Implement genesis hash (85b9f55)
- 🤖 BREAKING: Bump server API version (846d07d)
- 💡 breaking: Change API spec of get_hash_chain_info (db5e7af)
- 💡 breaking: Change get_past_last_rev API spec (fdbbda8)
- 💡 breaking: Change transclusion/update_hash API spec (0ce9eb4)
- 💡 breaking: Rename Domain Manifest to Domain Snapshot (6ffcca4)
- 💡 BREAKING: Rename to domain_manifest_genesis_hash (f261301)
Notable pull requests:
- Revision slots, translusion tracking, generic import/export. #224
- Prepare for multi-language support pt I. #267
- Make slot rendering more beautiful and functional. #285
- fix: Temporarely increase memory limits for import/export. #286
- "New page" button. #287
Full changelog below
chore
- 🤖 Add TODO comment for optimizing write_store_witness (712c3e1)
- 🤖 BREAKING: Bump server API version (846d07d)
- 🤖 Fix MetaMask name capitalization (1885736)
- 🤖 Fix style issue (678a130)
- 🤖 Introduce version in extension.json (50bab6b), closes #122
- 🤖 Remove unused 'has_transclusion' (dcd7a30)
- 🤖 Remove unused API endpoint get_page_by_rev_id (687ace7)
- 🤖 Remove unused comment (b049bbf)
- 🤖 Update required MW-Version to 1.37.0 (c127663)
doc
- Add reminder doc to add new fields to lookup classes (090e7e9)
- explicit doc for classes that should be updated on field change (2574cf2)
- ✏️ Add short description of code for genesis generation (c1c8b04)
- ✏️ Clarify comment on import collision fixing procedure (627231c)
- ✏️ Dogs dogs dogs ... wau wau wau!!! (9cba7e5)
- ✏️ Log error when posting signed tx fails (6e3e4c6)
- ✏️ third party: Attribute ethers.js (5823769)
- ✏️ Update author list (2c7a36b)
- ✏️ Update comment on witness event id update rule (73ce60c)
- Add some documentation (0d9c181)
- Code-documentation (3a26484)
- Document temporary methods (cc003cb)
feat
- 🎸 Add error handling witness func in get_revision (07ee931)
- 🎸 Add previous_verification_hash to revision_ver. table (ffda102)
- 🎸 BREAKING: Implement genesis hash (85b9f55)
- 🎸 Change wikitable class to 'table table-bordered' (6fc2c40)
- 🎸 Domain snapshot: link ver. hash. to get_revision API (7a3b1b3)
- 🎸 Ensure witness merkle tree entry is fully mobile (e21ebb0)
- 🎸 Implement get_hash_chain_info API endpoint (a9698e5)
- 🎸 Implement get_revision API endpoint (0aeebe7)
- 🎸 Implement get_revision_hashes API endpoint (f9b2f37)
- 🎸 Implement verification_context table column (793d783)
- 🎸 incomplete - expose content signature option (b62dffa)
- 🎸 Remove exclusion of file pages from domain manifest (dddb71c)
- 🎸 Show alert that MetaMask is disabled in pdf URLs (cfc147a)
- 🎸 Store witness: Implement store mainnet > testnet rule (b829a28)
- 🎸 witness page: Thumbnail file pages to save space (9f5d9d0)
- Add german translations (8768caa)
- Always write canonical titles to DB (ceeaba7), closes #330
- Api to export pages (aa3ae02)
- Check for permissions when showing "new page" button (8b74a4d)
- Check if revision was imported (f9d9756)
- Delete shorter pages on import collision (73e9b10)
- Export/Import (8ad08f0)
- Export/Import UI (dd61a58)
- Hash files and include it in content hash (b603075)
- Hash files and include it in content hash (0f1e683)
- Hash files and include it in content hash #2 (af32365), closes #2
- Hash files and include it in content hash #2 (222856d), closes #2
- Immutable links (028c654)
- Importer (382c28e)
- Importer #2 (c436da0), closes #2
- Main implementation of import API (e08052d)
- New page button (98b4ec0)
- New page button #2 (2bf30e3), closes #2
- Parse title on API calls (0a87a0a)
- Re-introduce collision resolution (2d1d56b)
- Refactor retrieving verirication entity on Witnessing (eabd5e4)
- Representation of changed resources #1 (bc80609), closes #1
- Representation of changed resources #1 (08b6afd), closes #1
- Return all revision slots in the API call (6d0693b)
- Update resources based on caches (2cfd9aa)
- Update resources based on caches (ad6fba4)
- Verication of included resources (9e93f59)
- Verication of included resources (c9e57ca)
fix
- 🐛 Add signature from MetaMask to page instead of '~~~~' (332d400), closes #217
- 🐛 Always create verification data regardless of slot type (3a44cf2)
- 🐛 Catch case where genesis_hash is null on import data (4d3f740)
- 🐛 Change depth entry in DB to INT(32) (94cf067), closes #303
- 🐛 Clarify collision avoidance page branch name (11887bc)
- 🐛 Do not run collision avoidance on every import revision (7fc3adb)
- 🐛 Ensure content hash is according to canonical JSON (5cff8ab)
- 🐛 Ensure witnessEventID is integer (e672833)
- 🐛 export/import: Includes hashes, context, previous VH (c492232)
- 🐛 Fix variable name typo (75870ab)
- 🐛 Fix variable name typo in merkle tree builder (b856e73)
- 🐛 Fix wrong DB select entry (599175a)
- 🐛 Fix wrong module names (fdeae8b)
- 🐛 Handle collision when importing witness events (3a236c3)
- 🐛 Handle if transclusionslot does not exist (7960ff5)
- 🐛 Import: Handle structured merkle proof correctly (5c5c097)
- 🐛 Include witness_hash and dm_title in VerifiedWikiImport (d8c3e11)
- 🐛 JSON export: Use hashmap for revisions entry (47eeb53)
- 🐛 Make sure verification_context is properly formatted (fcdcd41)
- 🐛 phpcs: Declare method to be private (36e4076)
- 🐛 Prevent duplicate Merkle tree node insertion (4b9ce86), closes #296
- 🐛 Remove MediaWiki: name space from domain manifest (7bea391)
- 🐛 Replace DB_MASTER with DB_PRIMARY (dba85f6)
- 🐛 Set original genesis hash for page move with redirect (cdc09b3)
- 🐛 sign: Use wgPageName instead of wgTitle (ada1002)
- 🐛 Use 1 way to override skin template navigation universal (9d0c127)
- 🐛 Use page move completing hook instead of complete hook (23439f3)
- 🐛 Wire in WitnessingEngine on onXmlDumpWriterWriteRevision (0d45e00)
- 🐛 witness publisher: Make whole lookup button clickable (0e346cc)
- Add missing use statements and remove error exceptions in phpstan (9a63b54)
- Add removed function (3ec35ac)
- Add visual separation between content and Verification data (f4ef6c9)
- Better reporting of collisions and especially skipped pages (e3668a0)
- Bug with transclusion hashses (a81363d)
- Change args passed to constuctor (bfc15a3)
- Check if slot exists before using it (3b869a0)
- Code-style fix (fd6068f)
- Correctly control infinitely deep transclusions (34ea0e3)
- Deep transclusions of files (7630a20)
- Disable PHP memory limits earlier on import (b762a12)
- Do not fatal when verificaiton data for transclusion does not exist (c1dd5dd)
- Do not fatal when verificaiton data for transclusion does not exist (3fbd4a4)
- Do not try to re-calculate translusions when MAIN slot is unchanged (a732845)
- Do not try to set error codes outside of HTTP range (d6b115c)
- Do not use non-existing method (ff0be9c)
- File export (361e36d)
- Fix issues in code-style tests (b5757e9)
- Fix unittest for Export (d68a96a)
- Fix unittest for Export (b8700b1)
- Fix unittest for Export (d0b24d2)
- Import of files now works (da910a6)
- Include full witness data in export (cd71ffc)
- Issues with transcluded files (cd1166e)
- Issues with transcluded files (5949df2)
- Make file pages with content importable (943c977)
- Refactor non-existing function (9a87a9f)
- Remove wrong annotation (2e21903)
- Skip non-existing pages in export (1e4ea6e)
- Temporarely increase memory limits for import/export (d076347)
- Typo (072fbe9)
- Use hasSlots to check if slot is present (5f2b439)
- Use wgPageName instead of wgTitle for updating transclusions (0be0fe7)
- Use WitnessingEngine in GetWitnessDataAPI (0a77815)
- When updating entities in DB, return updated object (783e1e3)
- Add missing use statement for NamespaceImportTitleFactory (5934736)
i18n
- Add immutable links translation (2563d9e)
- Add publishing status i18n to special witness publisher (4ab3ec0)
- Add single export i18n (5a6b522)
- Add support for special witness publisher (4854967)
- Add support to special witness (17c4ae6)
refactor
- 💡 breaking: Change API spec of get_hash_chain_info (db5e7af)
- 💡 breaking: Change get_past_last_rev API spec (fdbbda8)
- 💡 breaking: Change transclusion/update_hash API spec (0ce9eb4)
- 💡 breaking: Rename Domain Manifest to Domain Snapshot (6ffcca4)
- 💡 BREAKING: Rename to domain_manifest_genesis_hash (f261301)
- 💡 Catch when verificationEntity is null (b93c382)
- 💡 Change getWitnessData failure output to null (7a0d5ee)
- 💡 Clean up of unnecessary verification_hash column (4aa5739)
- 💡 Rename file-verification-slot to file_content_hash (c1cdc2d)
- 💡 Rename hash_content to content_hash (df89c3b)
- 💡 rename hash_metadata to metadata_hash (6a45f48)
- 💡 Rename id_type to identifier_type (c1eb52c)
- 💡 Rename insertMerkleTree to insertMerkleTreeNode (6bf88b3)
- 💡 Replace MovePage with its factory version (13660e3)
- 💡 Replace MySQL-specific COMMENT syntax with '--' (22144c7)
- 💡 Simplify step to get last revision ver. id (a3f2f3d)
- 💡 Switch update_hash from AJAX to use fetch (c329ab7)
- 💡 verification: Clarify has_* to has_previous_* (9a02426)
- Change how transclusions are handled (a747367)
- Fix how title is retrieved on signing (e8b1a35)
- Import files + more services (b855100)
- Improve file hash storing to enable manual check of checksum (f176b4c)
- Improve storing of file hash + change order of slots (possibly breaking) (1adf670)
- Refactor read APIs (4648912)
- remove old leftover api query example (132629c)
- Remove unnecessary hashes from transclusion hashes (6cf2681)
- Rename function name (9910fdf)
- Sign page over service (06ee97f)
style
- 💄 Add space for readability before 'Branch' (45180b7)
- 💄 Improve style of special da configuration page (9bb2b3e)
- 💄 Improve UX by shortening page export description (6c432fd)
- 💄 New description for inject signature option (6537f3d)
- 💄 Rename DataAccounting data to Verification Data (5a9bd22)
- 💄 special da config: Move signature label to the left (8337bc0)
- 💄 Use Bootstrap4 for witness publisher table buttons (42cddde)
- 💄 witness publisher: Change lookup btn color to white (eac4eab)
- 💄 witness publisher: Open lookup in new tab (ce9c233)
- Beautify the slot output (a0342ce)
- Do not show header for DA slots if no slots are present (5bbb39a)
- Hide default slot headers and make them pretty (8a84a04)
- Make Domain Snapshot Generator button nicer (3866d09)
- Make importer output a bit more nice (6d6e7ef)
- Remove link to user's talk page in the signature line (d75e297)
test
- Fix Hasher test (6c627b9)
- fix return types (2293a76)
- Unittests for transclusion hash parsing (cdba2ed)
- Add phpunit for TransclusionHashExtractor (6e2a508)
- Fix hash extractor phpunit test after new export merge (33952c8)
- Fix namespace and seperate api tests (99ebd72)
- Fix phpstan after lates changes (e5079fa)
- Fix phpstan after new export merge (d90f975)
- Add manual patch for setProvides signature in Composer 2.2 (d708984)
- Add unittest for da config (242e370)
- allowe never composer versions (a1c947e)
- Fix broken api tests (79878b4)
- fix directory names (37969d7)
- Fix hash extractor test after latest removal of unnecessary hashes (f623405)
- Fix phpcs issues (276081d)
- Fix psr-4 autoloader entries (1b62e23)
- fix typo genisis => genesis (197093e)
- Remove psr-4 autoload entries for phpstan (17c4898)
- remove the last ignore error from phpstan (177a9ad)
translate
- Add german translations for new messages (f6877b9)