aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
Commit message (Collapse)AuthorAgeFilesLines
* fix oplog chunk batch get (#221)Dan Engelbrecht2024-11-181-5/+7
| | | | * fix batch request not handling missing chunks correctly * fix CorrelationId in oplog batch chunk fetch
* Dashboard: oplog tree view (#217)Martin Ridgers2024-11-1816-1385/+1682
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Turned tables and progress bars and friends into "widgets!" * A step to abstracting away a page's the internal DOM structure * Folded sector creation into Page and pivoted it to a widget host * Try and keep start/count as numbers regardless of input * No need for the entry table to be defined up front now * Add op count and log sixe to oplog list page * Cache left side toolbar object * Bounds count page start when building list of oplog entrie * Start/end navigation tools * Build rest of entry page while waiting for indexer to load * Consistent naming with other pages * Spacially consolidate fetching code * Hide fetch latency to speed up index generation workers * Extract dashboard structure from zen.js monolith * Fix breadcrumbs after restructuring * Add view link to actions cell of oplogs list * Generator to enumerate names of entries in indexer * Methods for simple traversal of component relations * is() to check if a component is of a certain type * Extend attr() to get and unset a component's attributes * Unsetting all styles of anchor tags was underisrable * Restore page name as id of container element * A tree view of an oplog * Move helper class out to private module scope * Small tweak to use left var that already exists * Changelog update * Updated frontend .zip archive
* oplog prep gc fix (#216)Dan Engelbrecht2024-11-157-213/+878
| | | | | | - Added option gc-validation to zenserver that does a check for missing references in all oplog post full GC. Enabled by default. - Feature: Added option gc-validation to zen gc command to control reference validation. Enabled by default. - Added more details in post GC log. - Fixed race condition in oplog writes which could cause used attachments to be incorrectly removed by GC
* Self-hosted dashboard: Searchable oplog and links between oplog entry ↵v5.5.12-pre0Martin Ridgers2024-11-1110-372/+1000
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dependencies (#213) * Consistent use of semicolons * Added fallback if oplog entry assumptions do not hold * 'marker' and 'expired' cells were incorrectly friendly * Two spaces when there should only be one * Robustness against .text(undefined) calls * A single step into JavaScript modules * Turned Fetcher into a module * Friendly into a module * Specialise Cbo field name comparison as TextDecoder() is very slow * Prefer is_named() over get_name() * Incorrect logic checking if a server reply was okay * Try and make sure it's always numbers that flow through Friendly * Added a progress bar component * Swap key and package hash columns * CbObject cloning * Dark and light themes depending on browser settings * Adjust styling of input boxes * Add theme swatches to test page * Turns out one can nest CSS selectors * Separate swatch for links/actions * Generate theme by lerping intermediate colours * Clearer progress bar * Chromium was complaining about label-less input elements * Promise-based cache using an IndexedDb * WebWorker for generating map of package ids to names * Indexer class for building, loading, and saving map of ids to names * Added links to oplog entries of an entry's dependencies * This doesn't need to be decorated as async any longer * Implemented oplog searching * View and drop make no sense on package data payloads * Rudimentary search result truncation * Updated changelog * Updated HTML zip archive
* oplog capture new attachments for gc (#210)Dan Engelbrecht2024-11-062-7/+11
| | | * make sure we track added attachments properly in oplogs
* Improved oplog import/export progress indicator at commandline (#206)Dan Engelbrecht2024-11-066-71/+120
| | | | Nicer progress bar during oplog import/export Verify that oplog has not been deleted from disk behind our back
* sponsor process attach hardening (#208)Dan Engelbrecht2024-11-041-0/+1
| | | * make sure to clear sponsor slot if pickup does not happen
* workspace share security (#192)Dan Engelbrecht2024-10-235-148/+268
| | | | | | | - Improvement: Reworked workspace shares to be more secure. Workspaces and workspace shares can only be created using the `zen workspace` command, the http endpoint is disabled unless zenserver is started with the `--workspaces-allow-changes` option enabled. - Each workspace are now configured via a `zenworkspaceconfig.json` file in the root of each workspace - A workspace can allow shares to be created via the http interface if the workspace is created with the `--allow-share-create-from-http` option enabled - A new http endpoint at `/ws` - issuing a `Get` operation will get you a list of workspaces - A new http endpoint at `/ws/refresh` - issuing a `Get` will make zenserver scan for edits in workspaces and workspace shares
* bucket size queries (#203)Dan Engelbrecht2024-10-211-0/+115
| | | - Feature: Added options --bucketsize and --bucketsizes to zen cache-info to get data sizes in cache buckets and attachments
* make sure to initialize stats in file, jupiter and zen remote stores (#198)Dan Engelbrecht2024-10-163-21/+21
| | | * make sure to initialize stats in file, jupiter and zen remote stores
* Dashboard: oplog entry data download, more detail, styling tweaks. (#194)Martin Ridgers2024-10-147-104/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * MSVC's std::fs::path doesn't like appending '/' separated path components * Redirect '/dashboard' to '/dashboard/' * Missed a few copyright headers * Moved unescaped logo somewhere more suitable * More robust catching and displaying of errors * No need for the guard now or for waiting * Formal access to a component's style * Style tables explicitly without instead of via a CSS variable * Highlight a row under the cursor to guide user's eye * Not using css_var() so it was removed * Add more detail to a project's list of oplogs * Disabled test page's CbObject testing * Consider all fields ending in "importedpackageids" as dependencies * Don't wrap sector headers * Package ids were derived with endianess back to front * Moved oplog marker column further left * Adopt a vararg-style to Table.add_row() for cell contents * List and hotlink oplog entries' package data * Modest control over how a table's columns are arranged * Added tables to test column spacing * Keep stat filter input box correctly up to date * A clang-format run * Updated html.zip * validate found oplog directories when doing discover pass --------- Co-authored-by: Dan Engelbrecht <[email protected]>
* Add ability to read the oplog's ReferencedSet, as written by the cook… (#190)v5.5.9-pre7Matt Peters2024-10-115-35/+397
| | | | Add ability to read the oplog's ReferencedSet, as written by the cooker, from the ReferencedSet op. Filter oplog entries requests by the ReferencedSet, if trim_by_referencedset parameter is present.. Add -trim=true/false parameter to oplog-mirror command, default to true, to request the trimmed/not trimmed oplog. Helper functions: Add paging to IterateOpLogWithKey. Add unit tests for IterateOpLog functions. Move OpKeyStringAsOid from httpprojectstore into projectstore.
* oplog mirror and vfs utf8 paths (#189)Dan Engelbrecht2024-10-101-3/+3
| | | * assume "filename" fields in oplog entries are utf8 paths
* Dashboard: alignment of complex stats & logo goes home (#187)Martin Ridgers2024-10-103-57/+78
| | | | | | | * Unselectable logo text * Revisit alignment of complex request/bytes stats * ZenStore logo takes you home
* remove gc v1 (#121)Dan Engelbrecht2024-10-035-294/+9
| | | | | * kill gc v1 * block use of gc v1 from zen command line * warn and flip to gcv2 if --gc-v2=false is specified for zenserver
* - Improvement: Self-hosted dashboard (#181)Martin Ridgers2024-10-035-161/+1161
| | | Self-hosted dashboard gets oplog entry view and a stats browser
* gc command attachment options (#176)Dan Engelbrecht2024-09-306-25/+27
| | | * zen command - add options to control meta data cache when triggering gc
* Fixing compilation errors with fmt v11 (#172)Dmytro Ivanov2024-09-271-0/+1
|
* work around issues compiling fmt::join call on mac (#170)Stefan Boberg2024-09-271-1/+9
|
* CSS colours in one place + small modal dialog fix. (#169)Martin Ridgers2024-09-263-23/+53
| | | | | | | * Separate modal dialog's background into its own div with own opacity * Use :root and CSS vars for colours * An html.zip refresh
* Add `gc-attachment-passes` option to zenserver (#167)Dan Engelbrecht2024-09-255-7/+33
| | | | | Added option `gc-attachment-passes` to zenserver Cleaned up GCv2 start and stop logs and added identifier to easily find matching start and end of a GC pass in log file Fixed project store not properly sorting references found during lock phase
* Updated html.zipMartin Ridgers2024-09-241-0/+0
|
* Wrap ZipFs initialisation in ZEN_EMBED_HTML_ZIPMartin Ridgers2024-09-241-2/+6
|
* Updated frontend .zipMartin Ridgers2024-09-241-0/+0
|
* Added pagination when browsing oplog entriesMartin Ridgers2024-09-241-5/+19
|
* Build action cells using toolbarsMartin Ridgers2024-09-241-4/+11
|
* Removed commented out codeMartin Ridgers2024-09-241-1/+0
|
* Convenience on_click() that infers action classMartin Ridgers2024-09-241-2/+8
|
* Let's try centering table cells' contentsMartin Ridgers2024-09-241-0/+1
|
* Vertically center modal dialog's button labelsMartin Ridgers2024-09-241-0/+1
|
* Component.inner() for access to the underlying DOM elementMartin Ridgers2024-09-241-0/+5
|
* Deleted superfluous variable name suffixMartin Ridgers2024-09-241-7/+7
|
* Toolbars can be used within other elementsMartin Ridgers2024-09-242-1/+15
|
* Leave blank table cells emptyMartin Ridgers2024-09-241-1/+1
|
* Keep right() toolbar items flush to the sideMartin Ridgers2024-09-241-0/+4
|
* Lighten toolbar separatorsMartin Ridgers2024-09-242-1/+5
|
* Rudimentary toolbar componentMartin Ridgers2024-09-242-0/+56
|
* Add a little spacing between tablesMartin Ridgers2024-09-241-0/+1
|
* Test page of dashboard widgetsMartin Ridgers2024-09-241-0/+75
|
* Added a Page.set_title() to replace free zen_title()Martin Ridgers2024-09-241-10/+9
|
* add_section() is provided by Page baseMartin Ridgers2024-09-241-10/+12
|
* Min/max width for dashboard contentMartin Ridgers2024-09-242-1/+7
|
* clang-format passMartin Ridgers2024-09-241-1/+1
|
* Initial version of in-proc HTML dashboardMartin Ridgers2024-09-245-54/+787
|
* Updated stale commentMartin Ridgers2024-09-241-1/+1
|
* Only use embedded frontend content in release buildsMartin Ridgers2024-09-241-0/+4
|
* Added namespace qualifier (optional) for z$ rpc requests (#166)Stefan Boberg2024-09-232-52/+75
| | | This change adds support for a namespace-qualified RPC endpoint for z$ at `/z$/<namespace>/$rpc` which may be used to validate RPC requests by URL inspection. The old scheme is still supported.
* gc unused refactor (#165)Dan Engelbrecht2024-09-232-28/+31
| | | | | * optimize IoHash and OId comparisions * refactor filtering of unused references * add attachment filtering to gc
* End was clamped to the wrong side if Count was defaultedMartin Ridgers2024-09-191-1/+1
|
* Reinstate member initialisation that was there originallyMartin Ridgers2024-09-191-2/+2
|