List of changes for this repo, including atomic-cli, atomic-server and atomic-lib.
By far most changes relate to atomic-server, so if not specified, assume the changes are relevant only for the server.
Changes to JS assets (including the front-end and JS libraries) are not shown here, but in /browser/CHANGELOG.
See STATUS.md to learn more about which features will remain stable.
- fix property sort order when importing + add tests #980
- auto-run
initializeif server URL has changed #273
- Speed up Commits by bundling DB transactions #297
- Introduce
Db::apply_transactionandStorelike::apply_commit - Deprecate
add_atom_to_indexandremove_atom_from_indexas public methods.
- The download endpoint can now optimize images on the fly. This is controlled via query parameters. #257
- Added export endpoint for exporting resources to other formats. Currently only supports exporting tables to csv. #925
- Remove
process-managementfeature #324 #334 - Add
atomic_lib::client::searchfor building queries #778 - Add
atomic-cli searchcommand #778 - Migrate atomic_cli to use the derive API #890
- Refactor
atomic_lib::Resourcepropval methods (e.g.set_propval=>set), make them chainable. #822 - Make
set_propvalandset_propval_shortnamechainable #785 - Deterministic serialization JSON AD #794
- Use
musl+alpinebuilds for docker images, way smaller images #620 - Support multi-platform docker builds #731
- Remove deprecated ENV vars #732
- Fix no Agent as drive
- Add
clearoption to error component (resets all front-end state) - Add
Agent::from_secret#785 - Don't use default agent when fetching with Db #787
- Fix HTTPS / TLS setup #768
- Fix locally searching for atomicdata.dev resources in external servers #706
- Use Earthly for CI: building, testing, pushing Docker images #576
- Host @tomic NPM docs on Netlify #707
- Deprecate Tauri Desktop build #718
- Merge Docs repository into this one #719
- Requires
--rebuild-index - Switch to monorepo. Include
atomic-data-browserin this repo #216 - Add Tables (edit, keyboard support, sorting, more) #638
- The
parentquery param in/searchhas changed toparentsand accepts an array of Subjects #677 - Improve query performance, less index storage #678
- Remove
tpfqueries fromatomic-cli#610 - Fix
pageSizeproperty in Collections not using persistence - Add Table Ontology #25
- Fix Post endpoints not including search params in returned
@idfield. - Rebuilding indexes done on separate thread, only once #616 #615
- Don't require building index for populate commands
- Refactor
for_agentarguments to use the newForAgentenum #623 - Add support for Bearer token authentication, find in
/app/token#632 - Add a
queryendpoint that allows performing collection queries via an endpoint instead of repurposing the collections collection. resource.destroynow recursively destroys its children.- Update JS assets, add History view
- Requires
--rebuild-index - Improve full-text search, use JSON fields #335
- Rename
setup-envtogenerate-dotenvand build it from clap #599 - Remove
remove_previous_searchandasset_urloptions - Parse multiple auth cookies #525
- Fix
--scriptflag - Add
Storelike::post_resource, which allows plugins to parse HTTP POST requests #592 - Move Server-Timing header to crate
simple-server-timing-header - Add
POST+bodysupport for Endpoints #592 - Refactor
Endpointhandlers, uses a Context now #592 - Re-build store + invite when adjusting server url #607
- Use local atomic-server for properties and classes, improves atomic-server #604
- Improve query performance, refactor indexes. The
.tpfAPI is deprecated in favor of the more powerful.query. #529 - Replace
acme_libwithinstant-acme, drop OpenSSL dependency, add DNS verification for TLS option with--https-dns#192 - Improved error handling for HTTPS initialization #530
- Add
--forcetoatomic-server import#536 - Fix index issue happening when deleting a single property in a sorted collection #545
- Update JS assets & playwright
- Fix initial indexing bug #560
- Fix errors on succesful export / import #565
- Fix envs for store path, change
ATOMIC_STORE_DIRtoATOMIC_DATA_DIR#567 - Refactor static file asset hosting #578
- Meta tags server side #577
- Include JSON-AD in initial response, speed up first render #511
- Remove feature to index external RDF files and search them #579
- Add staging environment #588
- Add systemd instructions to readme #271
- Add parent parameter to search endpoint which scopes a search to only the descendants of the given resource. #226
- Bookmark endpoint now also retrieves
og:imageandog:description#510 - Give server agent rights to edit all resources, fix issue with accepting invites in private drives #521
- Add cookie based authentication #512
Store::all_resourcesreturnsIteratorinstead ofVec#522 #487- Change authentication order #525
- Fix cookie subject check #525
- Change how the sidebar resources are created
- Update JS assets
- Use WebSockets for fetching resources and authentication. Faster than HTTP! #485
- Added JSON-AD Importer
- Add HTML Bookmarks features
- Update Atomic-Data-Browser
- Improve CLI errors for Atomic-Server #465
- Fix default config directory, set it again to
~/.config/atomic. This accidentally was~since v0.32.0. - Fix flaky query test #468
- Don't subscribe to external resources #470
- Improve frequency search indexing #473
- Add HTML importer / bookmarks endpoint #432
- Allow new
Driveresources without a parent - Refactor end-to-end tests
- Upgrade to stable tauri #451
- Improve performance of invites #450
- Update JS bundle:
- Fix Dropdown input bug
- Fix autogrow textarea bug
- Fix issue when creating invite for chatroom #413
- Add OpenTelemetry suport #416
- Fix
removeCommit command #417 (thanks @rasendubi!) - Make tests less flaky by removing the
StoreinAgent:to_resource#430 - Update JS bundle
- Warning: Various default directories have moved (see #331). Most notably the
datadirectory. The location depends on your OS. Runshow-configto see where it will be stored now. If you have data in~/.config/atomic/db, move it to this new directory. Also, the search index will have to be rebuilt. Start with--rebuild-index. - Updated various dependencies, and made
cargo.tomlless restrictive. - Handle
previousCommit. This means that Commits should contain a reference to the latest Commit. - Remove
async-stdcalls fromupload.rs - Added
resetandshow-configcommands toatomic-server. - Added
data-dirflag - Replaced
awcwithureq#374 - Get rid of
.unwrapcalls incommit_monitor#345 - Make process management optional #324 #334
- Auto-update desktop distributions using Tauri #158
- Internal migration logic for inter-version compatibility of the database. Makes upgrading trivial. #102
- Use commits in populate and init
- Fix bug when opening the same invite twice with the same agent
- Update atomic-data-browser, deal with new commits, add chatrooms
- Add
Store::set_handle_commit. Changes how Commits are internally processed. Now, users ofatomic_libcan pass a custom handler function. This can be used to listen to events. #380 #253 - Added ChatRoom functionality. #373
- Add
pushoption to Commits, which allows for efficient manipulation of ResourceArrays. RemoveResource::append_subjectsmethod in favor ofpush_propvals#289. - Add
appendright, only allows creating children #381. - Fix logic for updating indexes. Sometimes atoms were ignored. #392 #395
- Host the data-browser assets / JS bundles from
atomic-server's binary #185 - Allow reading Commits #307
- Upgrade
actix,clapandtauridependencies #301 - No
MutexforAppstatein server #303 - Removed system tray from
atomic-server, since I only want to maintain the Tauri version - Rename
src-tauritodesktopand make the tauri code part of the cargo workspace - In Queries, respect a
limitofNoneandinclude_external#317 - Run end-to-end tests from
atomic-data-browserinatomic-serverCI #204 - Use
nextestfor testing #338 - Improve and monitor test coverage #337
- Fix commit indexing #345
- Huge performance increase for queries! Added sortable index, big refactor #114
- Added
store.query()function with better query options, such asstarts_atandlimit. Under the hood, this powersCollections, Resource.savereturns aCommitResponse.- Refactor
Commit.apply_opts, structure options. - Remove the potentially confusing
commit.applymethod. store.tpfnow takes aValueinstead ofString.- Improved sorting logic. Still has some problems.
Run with --rebuild-index the first time, if you use an existing database.
Note that due to an issue in actix, I'm unable to publish the atomic-server crate at this moment.
You can still build from source by cloning the repo.
- Improve performance for applying commits and updating index (from ca. 50ms to <1ms), refactor value index #282
- More tracing / logging insights
- More search results for authorized resources #279
- Fix panic on unwrapping multipart upload
- Improve tauri dev UX
- Fix HTTPS initialization
- Add
--server-urloption - Improved logs (better fitting level options, less verbose by default)
- rename
base_urltoserver_url
- Update to actix v4, get Tauri to work again #246
- Replace
logwithtracingfor structured logging and add tracing toatomic-lib, enables better (performance) diagnostics #261 - Add
--log-leveloption #261 - Add
--trace-chromeoption #261 - Correct 404 status code
- Server-Timings header #256
- Added various endpoints as resources #259
- Show version, author and description in cli tool
- Fix indented welcome message in generated Drive
- Add file uploading and downloading #72
- Reverted to earlier Actix build, which unfortunately also means you have to wait longer for the Tauri desktop version of Atomic-Server #246
- Stricter authorization checks for Invites #182
- Add expires at check to Invites #182
- Add github CI action for Tauri Builds #221
- Add
append_subjectsmethod to Resource, helps dealing with arrays - Running
--initializeis non-destructive - rights to the Drive are only added, not removed. - Stricter collection authorization #247
- Improved
check_rightsAPI #247 - Make Agents public by default, required for authentication process #247
- Desktop build (using Tauri) with system tray, icon, installers, menu items. #215
- Upgraded Actix to latest (needed for Tauri due to usage of Tokio runtime) #215
- Allow Agents to write and edit themselves #220
- Less collections for first-time users #224
- Sort collections by subject by default
- Set default port to 9883 instead of 80 #229
- Add authentication to restrict read access. Works by signing requests with Private Keys. #13
- Refactor internal error model, Use correct HTTP status codes #11
- Add
public-modeto server, to keep performance maximum if you don't want authentication.
- Full-text search endpoint, powered by Tantify #40
- Add RDF-Search usecase (enables re-use of this server as search service for Solid pods)
- Add
enumsupport using theallows-onlyProperty. #206
- Fix docker env issue #202
- Fix docker image by switching
heimwithsysinfo#203 - Fix path ENV variables
- Fix logging while terminating existing process
- IMPORANT: before upgrading to this version, export your database using your previous version:
atomic-server export. The database could become corrupted when running the new version. - Refactor internal
Valuemodel and add Nested Resource parsing #195 - Added tests, improved some documentation
- Fix indexing commits #194
- Add more control over adding resources with
Store.add_resource_opts()
- Make HTTPS optional #192
- Fix parsing .env file
- Fix bootstrapping issue #193
- IMPORANT: before upgrading to this version, export your database using your previous version:
atomic-server export. The database could become corrupted when running the new version. - Include Resources in Collection responses, improving performance dramatically for collections #62
- Introduce
incompleteresources - Update
get_resource_extended, allow specify whether to calculate nested resources. - Sort
childrenin hierarchies. - Sort
exportoutput - first export Properties, fixing #163 - Add
only-internaltoexportCLI command inatomic-server.
- Many
atomic-serverCLI improvements. Add options as flags, without needing environment variables. #154
- Add
setup-envcommand toatomic-serverfor creating a.envfile #154 #187 - Remove analytics in server
- Make
asset-urlandscriptin HTML template customizable. #189
- Improved error message for hierarchy authorization check #178
- Fix Property
recommends#177 - Refuse commits with query parameters in their subjects #179
- Add
resource.destroy()method, which uses commits - Improve killing existing processes - wait until other process has stopped #167
- Make
atomic-clismaller (don't usedbfeature fromatomic-lib)
- Added WebSockets support for live synchronization / real-time updates with the front-end #171
- Update index after
destroying a resource #173
- Improve process ID functionality #167
- Improve invite URL
- Fix domain .env #169
- Fix HTTPS port bug
- Check and terminate running instances of
atomic-serverwhen running instance #167
- Add flags for
reindexandinit - Improve CI for automated tests & builds #165
- Improve ease of initial setup with initial invite on
/setup#159 and welcoming descriptions for first Drive and Invite.
- Fixes caching bugs for collections introduced by #14
- Fix external resources in Collections #161
- Add Value indexing, which speeds up TPF queries / collections tremendously #14
- Add models for Document editor
- Improve commit authorization checks - allow new resources with existing parents
- Fix
/pathendpoint return values #143 - Add ASCI logo in terminal on boot
- Fix getting resources from server's
/commitpath #144 - Fix cache-control header issue when opening a closed tab #137
- Add collection properties
name,sortByandsortDesc#145 - Extract
apply_changesfromapply_commit, make versioning safer and more reliable #146 - Remove AD3 remnants, clean up code #148
- TPF endpoint supports JSON-AD #150
- Custom serializations in
atomic-cli tpf
- Add write rights to Agent itself on accepting Invite
- Fix RDF serialization for dynamic resources #141
- Update and check Usages for Invites #134
- Make names for agents optional
- Move shortname property always to first one
- Hierarchy with breadcrumbs and easy to use navigation #134
- Authorization using Hierarchy, which means you can add write & read permissions anywhere in a hierarchy.
- Invites to invite new and existing users to read / edit a bunch of resources. Test it here.
- Build using esbuild instead of webpack #31
- Some documentation improvements
- Remove
createdAtfrom Agent model required fields - Fix
n-triplescontent type negotiation
- Fix deadlock in
cli newcommand #124 - Added boolean, timestamp and unsupported fallback to
cli newcommand #30 - Fix CLI input
server- no subcommand required for running
- Added import / export to server and lib #121
- Added basic cli functionality with Clap to server #125
- Added multi-resource JSON-AD array parsing #123
- Use JSON-LD as default store #79
- Removed all HTML rendering from
atomic-server(since we're usingatomic-data-browser). - Changed how config paths are calculated and shared.
- Remove the need for having the
./staticfolder #118 when runningatomic-server, moved to config dir. - Add
open configto tray icon - Updated
atomic-clipath, no longer requires quotes
- Added versioning #42
- Added endpoints #110 #73
- Moved
/pathlogic toatomic-libas endpoint #110 get_extended_resourceis now DB only #110- Correct response codes (404) #105
- Improved .html page (+PWA support and Matomo tracking)
- Upgraded various dependencies
- Reject commits if they are editing a non-owned resource #106
- Correct response codes (404) #105
- Use atomic-data-browser js frontent by default #103
Warning: existing databases will not work with this version.
- Fix deleting items #101
- Add a datatype for floats #93.
- Switch to JSON-AD parsing & serialization for Commits #100
Warning: existing Agents and Commits will no longer work. Be sure to create new ones.
- Change Commit serialization to match atomic-data-browser implementation #98.
- Permissive CORS #92
- Add JSON-AD serialization #79, use it in Commits
- Servers are aware of their own URL #51
- Improved CLI edit feature, more flexible (create new resources if none exist, fix newlines)
- Add
resource.save_locally()
- Fix array length bug in paths
- Add docker link to homepage
- Add system tray icon #75
- Removed
ResourceString - Improved WASM compliance #76
- Add ARM Docker compatibility #80
- Remove dead dependency #82
- CLI commit commands shortname fix #83
- rename
set_propval_by_shortnametoset_propval_shortname
- Added persistence to server docker image #70
- Improved default Agent setup for server
- Improved error handling in cli
- Added tests for cli #67
- Fixed generated addresses
localhost/collectionvslocalhostcollection - Added dockerfile for server #69
- Huge refactor of internals. Got rid of all string representations for Atoms, so store should only contain valid data. All Resources have all required props, and data is of the correct datatype.
Resource.save()can be called! Easy way to store changes, both locally and externally.- Added collection sorting #63
- Added table view for
atomic-server#53 - Changed many methods from the
ResourceAPI to fix some ownership / trait object issues #45.Resourceno longer has an internal reference toStore, so it needs an explicit store in most methods.
- Atomic-cli 0.18.0 allows for instantiating new Resources, whilst creating commits! It also re-introduces the TPF query.
- Atomic-server 0.17.1 now automatically renews HTTPS certificates on boot, if needed.
atomic-clican now edit data securely on anatomic-server#41 #13- Root agent is automatically generated #38
- Convenient Collections (such as a list of all Commits, Classes, Agents, etc.) are generated for every store on
populate(). #43 - Fixed some props for Collections and Commits
- Add dynamic collections with pagination #36 #17
- Refactor Db to use native values, for allowing nested resources #16
- Atomic Commits using deterministic serialization and cryptographic signatures #26 #24 #27 #31
- Recognize filetypes in URL #33
- Save reference to Store inside Resource #19
- No more &muts #18 #15
- Adds HTTPS auto certificate support