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
initialize
if server URL has changed #273
- Speed up Commits by bundling DB transactions #297
- Introduce
Db::apply_transaction
andStorelike::apply_commit
- Deprecate
add_atom_to_index
andremove_atom_from_index
as 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-management
feature #324 #334 - Add
atomic_lib::client::search
for building queries #778 - Add
atomic-cli search
command #778 - Migrate atomic_cli to use the derive API #890
- Refactor
atomic_lib::Resource
propval methods (e.g.set_propval
=>set
), make them chainable. #822 - Make
set_propval
andset_propval_shortname
chainable #785 - Deterministic serialization JSON AD #794
- Use
musl
+alpine
builds for docker images, way smaller images #620 - Support multi-platform docker builds #731
- Remove deprecated ENV vars #732
- Fix no Agent as drive
- Add
clear
option 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-browser
in this repo #216 - Add Tables (edit, keyboard support, sorting, more) #638
- The
parent
query param in/search
has changed toparents
and accepts an array of Subjects #677 - Improve query performance, less index storage #678
- Remove
tpf
queries fromatomic-cli
#610 - Fix
pageSize
property in Collections not using persistence - Add Table Ontology #25
- Fix Post endpoints not including search params in returned
@id
field. - Rebuilding indexes done on separate thread, only once #616 #615
- Don't require building index for populate commands
- Refactor
for_agent
arguments to use the newForAgent
enum #623 - Add support for Bearer token authentication, find in
/app/token
#632 - Add a
query
endpoint that allows performing collection queries via an endpoint instead of repurposing the collections collection. resource.destroy
now recursively destroys its children.- Update JS assets, add History view
- Requires
--rebuild-index
- Improve full-text search, use JSON fields #335
- Rename
setup-env
togenerate-dotenv
and build it from clap #599 - Remove
remove_previous_search
andasset_url
options - Parse multiple auth cookies #525
- Fix
--script
flag - 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
+body
support for Endpoints #592 - Refactor
Endpoint
handlers, 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
.tpf
API is deprecated in favor of the more powerful.query
. #529 - Replace
acme_lib
withinstant-acme
, drop OpenSSL dependency, add DNS verification for TLS option with--https-dns
#192 - Improved error handling for HTTPS initialization #530
- Add
--force
toatomic-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_DIR
toATOMIC_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:image
andog: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_resources
returnsIterator
instead 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
Drive
resources 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
remove
Commit command #417 (thanks @rasendubi!) - Make tests less flaky by removing the
Store
inAgent:to_resource
#430 - Update JS bundle
- Warning: Various default directories have moved (see #331). Most notably the
data
directory. The location depends on your OS. Runshow-config
to 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.toml
less restrictive. - Handle
previousCommit
. This means that Commits should contain a reference to the latest Commit. - Remove
async-std
calls fromupload.rs
- Added
reset
andshow-config
commands toatomic-server
. - Added
data-dir
flag - Replaced
awc
withureq
#374 - Get rid of
.unwrap
calls 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_lib
can pass a custom handler function. This can be used to listen to events. #380 #253 - Added ChatRoom functionality. #373
- Add
push
option to Commits, which allows for efficient manipulation of ResourceArrays. RemoveResource::append_subjects
method in favor ofpush_propvals
#289. - Add
append
right, 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
,clap
andtauri
dependencies #301 - No
Mutex
forAppstate
in server #303 - Removed system tray from
atomic-server
, since I only want to maintain the Tauri version - Rename
src-tauri
todesktop
and make the tauri code part of the cargo workspace - In Queries, respect a
limit
ofNone
andinclude_external
#317 - Run end-to-end tests from
atomic-data-browser
inatomic-server
CI #204 - Use
nextest
for 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_at
andlimit
. Under the hood, this powersCollection
s, Resource.save
returns aCommitResponse
.- Refactor
Commit.apply_opts
, structure options. - Remove the potentially confusing
commit.apply
method. store.tpf
now takes aValue
instead 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-url
option - Improved logs (better fitting level options, less verbose by default)
- rename
base_url
toserver_url
- Update to actix v4, get Tauri to work again #246
- Replace
log
withtracing
for structured logging and add tracing toatomic-lib
, enables better (performance) diagnostics #261 - Add
--log-level
option #261 - Add
--trace-chrome
option #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_subjects
method to Resource, helps dealing with arrays - Running
--initialize
is non-destructive - rights to the Drive are only added, not removed. - Stricter collection authorization #247
- Improved
check_rights
API #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-mode
to 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
enum
support using theallows-only
Property. #206
- Fix docker env issue #202
- Fix docker image by switching
heim
withsysinfo
#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
Value
model 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
incomplete
resources - Update
get_resource_extended
, allow specify whether to calculate nested resources. - Sort
children
in hierarchies. - Sort
export
output - first export Properties, fixing #163 - Add
only-internal
toexport
CLI command inatomic-server
.
- Many
atomic-server
CLI improvements. Add options as flags, without needing environment variables. #154
- Add
setup-env
command toatomic-server
for creating a.env
file #154 #187 - Remove analytics in server
- Make
asset-url
andscript
in 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-cli
smaller (don't usedb
feature fromatomic-lib
)
- Added WebSockets support for live synchronization / real-time updates with the front-end #171
- Update index after
destroy
ing 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-server
when running instance #167
- Add flags for
reindex
andinit
- 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
/path
endpoint return values #143 - Add ASCI logo in terminal on boot
- Fix getting resources from server's
/commit
path #144 - Fix cache-control header issue when opening a closed tab #137
- Add collection properties
name
,sortBy
andsortDesc
#145 - Extract
apply_changes
fromapply_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
createdAt
from Agent model required fields - Fix
n-triples
content type negotiation
- Fix deadlock in
cli new
command #124 - Added boolean, timestamp and unsupported fallback to
cli new
command #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
./static
folder #118 when runningatomic-server
, moved to config dir. - Add
open config
to tray icon - Updated
atomic-cli
path, no longer requires quotes
- Added versioning #42
- Added endpoints #110 #73
- Moved
/path
logic toatomic-lib
as endpoint #110 get_extended_resource
is 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_shortname
toset_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/collection
vslocalhostcollection
- 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
Resource
API to fix some ownership / trait object issues #45.Resource
no 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-cli
can 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