Actions and results

What each Documents button and automatic behaviour does, with worked numbers and what the system refuses.

On this page (16)

Library

ActionWhenWhat you doWhat happens
Open the library for the first timeA test company with Documents installed and no library yetOpen Documents > LibraryStarting masters created once: 4 retention policies (COMMERCIAL 5 y, TAX 5 y, PERSONNEL 5 y from expiry, PERMANENT 100 y), 6 document types (CONTRACT, LICENCE, CERTIFICATE, FINANCE, POLICY, GENERAL) and 6 workspaces (Company, Finance, Human Resources, Contracts, Legal, Shared); the index of other modules' files is built
Files other modules keep appearA test sales order with an attachment, a test employee with a passport document, a project documentOpen Library, Every storeAll three listed with their Store (Record attachments, Employee documents, Project documents) and Linked record (e.g. SO number - customer); they are not copied, only indexed
Tab counts3 active files, 1 uploaded by you, 1 expiring in 45 daysLook at the tabsAll 3, My documents 1, Expiring 1, Quarantine 0; counts follow the Workspace / Store / Linked to / Kind / held filters
Filters narrow on the serverFiles in several storesChoose Store = Employee documents, then Kind = PDF, then tick Under legal holdEach choice narrows the list and the tab counts; choosing a Workspace sets Store to Library; clearing restores all
SearchA file tagged 'renewal' and a contact file for 'TEST Trading'Search 'renewal', then 'TEST Trading'Finds by tag and by linked record label; search runs on the server across pages
Sort and pagingMore than 80 filesSort by Size descending; go to page 2Order kept across pages (server sort); 80 rows per page by default
List / Grid viewSwitch to Grid; reload the pageCards with icon (or image thumbnail), name, record, state chip and size; Grid is remembered after reload
State chip rulesFiles: expiry in 45 days, expired yesterday, expiry in 120 days, archived, heldLook at StateExpiring (amber), Expired (red), Available (green), Archived (grey), Held (red); held wins over expiry; a file removed at source shows 'Removed at source'
Size displayFiles of 900 bytes, 1,536 bytes and 1.5 MB (1,572,864 bytes)Look at Size'900 B', '2 KB' (1,536 / 1,024 = 1.5, rounded), '1.5 MB'
Side panelClick a rowPanel opens: Preview with key facts; Details (size, type with MIME tooltip, SHA-256 short, uploaded by / at, tags, hold reason); Versions (library files only); Activity; buttons Open document and Download
Refresh indexAdd an attachment to a test sales order in SalesLibrary > Refresh indexThe new attachment appears at once (otherwise within 10 minutes - the index refreshes itself when older than 10 minutes); tooltip shows 'Indexed <date time>'
File removed at its sourceAn indexed attachmentDelete the attachment in its module; Refresh index; tick Library filters to see removed files via API state=missingRow kept as a tombstone (present = false) with state 'Removed at source'; opening its content answers 'This file has been removed from the module that kept it.' (410)
Export manifestSome filtered rows, one named '=SUM(A1)' (test)Export manifestdocument-manifest.csv (UTF-8 with BOM) with Name, Store, Linked record, Record type, Category, Kind, Size (bytes), SHA-256, Version, Uploaded, Uploaded by, Expires, Legal hold, Sensitivity, Tags; only the rows you can see under the filters; '=SUM(A1)' written as text with a leading apostrophe; audit 'Export manifest' with the file's hash
Export limitA view holding more than 10,000 files (2,000 x 5)Export manifestRefused: 'This view holds <n> files. Narrow it before exporting.'

Upload wizard

ActionWhenWhat you doWhat happens
Upload one PDFdms.manageUpload; choose a 1 MB PDF; Continue; Type Licence or permit, Expiry 31 Dec 2026, tag 'licence', folder Legal; Continue; Library only; Review; Upload 1 fileFile state Checking -> Ready -> Filed; dialog closes, Library switches to My documents showing it as Version 1, Owner = you, Classification 'Licence or permit', Sensitivity Internal; audit 'file uploaded v1 <bytes> bytes'
Several files at onceChoose 3 files (PDF, DOCX, XLSX); keep Apply to all ticked; set type General document and tag 'batch'; Upload 3 filesTally '3 accepted - 0 rejected'; all three filed with the same type and tag; Review lists each with Type, Folder, Expires
Per-file classificationChoose 2 files; step 2 untick 'Apply these values to all accepted files'; click the second file on the left and give it another typeEach file keeps its own values; Review shows the different types
Refused file is never sentChoose test.exe, a .bat, an .svg and a valid PDFThe three are Rejected with the reason beside them ('.exe files are not kept in the library: programs, scripts and web pages can run.' etc.); tally '1 accepted - 3 rejected'; only the PDF is uploaded
Type read from the bytesA text file renamed invoice.png; a real PNG renamed scan.pdfChoose bothinvoice.png refused 'This file is named as an image but its contents are text/plain.'; scan.pdf accepted and shown as Image (the bytes decide)
HTML disguised as textA file notes.txt whose content starts with <html>Choose itRefused: 'This file is a web page (HTML), which can run scripts; it is not kept.'
Image bombA tiny PNG declaring 20,000 x 20,000 pixels (400 million; limit 50 million)Choose itRefused: 'This image unpacks to far more pixels than any document needs, and is refused.'
Damaged filesA truncated JPG; a .zip with broken bytesChoose them'This image is damaged and cannot be read.'; 'This file says it is a zip archive but is damaged.'
Type limits re-checkedChoose a 30 MB PDF and a JPG; step 2 choose type Contract (pdf, word, 25 MB)Both re-checked: PDF 'The file is 30.0 MB; this document type takes at most 25 MB.' (413); JPG 'This document type takes pdf, word files, not image.'; both turn Rejected
Default size limitChoose a 60 MB PDF with no typeRejected: 'The file is 60.0 MB; this document type takes at most 50 MB.' A 210 MB file: 'A file may be at most 200 MB.'
Duplicate warning (hash)A PDF already in the library or attached to a sales orderUpload the same file againReview warns '<file> is already held as "<name>" (<store>, <record>).' The upload is still allowed; both rows show the same SHA-256 and the bytes are stored once
Expiry warningType Licence or permit (carries an expiry)Leave Expiry empty; go to ReviewWarning '<file>: Licence or permit usually carries an expiry date.' Upload still allowed
Unclassified warningLeave type Unclassified; ReviewWarning '<file>: no document type - it will be filed as unclassified.'; with no warnings 'Everything required is filled in.'
Link to a recordA test customer TEST Trading LLC; you hold partner.viewStep 3: Record type Contacts; type 'TEST'; pick the customer; UploadContinue disabled until a record is picked; filed with Linked record 'TEST Trading LLC'; the customer's Documents button count rises by 1
Cancel leaves nothingChoose 2 valid files, reach Review, press CancelNothing stored: Library and Storage usage unchanged (the check step stores nothing)
Partial failureChoose 2 files; before Upload, in another tab archive the chosen document type; UploadFiles refused show 'Failed' with 'Choose an active document type.'; message 'Some files were not filed; their reasons are shown beside them.'; dialog stays open; filed ones are not uploaded twice on retry
Required description (field setting)Fields: Document description = Required (approved)Upload a file with empty descriptionUpload blocked: 'This company requires a description on every document: <file>.'; field shows *; with a description it files

Document record

ActionWhenWhat you doWhat happens
Open read-onlyA library fileOpen documentRead-only; Edit, New version, Download in the action row; More menu shows hold / archive / disposal per rights; viewer left, four cards right
Edit and save metadataEdit; change Name, type to Certificate, Sensitivity Confidential, Folder Legal, tags 'a, b'; Save'Saved.'; values shown; History adds 'file updated' with the changed keys (name, folder, tags, type) before/after; revision +1
DiscardEdit; change Name; DiscardStored values back; nothing saved
Edit conflictSame document open in two tabsTab 1 Edit + Save; tab 2 Edit + SaveTab 2 refused 'This record changed. Reload it before saving.'
New versionA library file at version 1New version; choose an updated PDF'Version 2 published.'; chip Version 2; Versions tab: v2 current, v1 kept with its own SHA-256, size and uploader; audit 'version published v2 <hash>'
Old version stays readableFile with v1 and v2Versions tab: View on v1; Download on v1Viewer shows v1 and chip 'Version 1'; download gives the v1 bytes (same SHA-256 as listed); Download in the action row follows the version shown
New version obeys the typeFile of type Contract (pdf, word, 25 MB)New version with a JPGRefused: 'This document type takes pdf, word files, not image.'; still version 1
Restore an older versionFile with v1 and v2Look for a Restore / Make current actionNot built: only View and Download per version. To restore, download v1 and upload it as a new version (v3, same hash as v1) - note
Check-out / check-inLook for Check out / Lock for editingNot built: anybody with dms.manage can add a version; concurrent new versions are separated only by the revision check - note
Archive and restoreActive library fileMore > Archive; check Library; More > Restore from archive'Archived.' - file leaves the All tab (state archived); 'Restored.' - back in All; History records both
Links tabA file linked to a customerOpen LinksStore Library, Business record 'Contacts: TEST Trading LLC', Needs permission partner.view (library-only files show dms.view)
Indexed file from another moduleAn employee passport (Employee documents)Open documentNo Edit / New version / Archive; Policy 'Kept by its module'; Links: 'the file stays in that module and opens under its rules'; legal hold available to dms.dispose holders
HistoryA file uploaded, edited, held and releasedHistory tabEvery library event with user and Dubai time: file uploaded, file updated, hold placed, hold lifted, version published, disposal proposed / approved (max 200)
Place legal holddms.disposeMore > Place legal hold; matter 'Dubai Courts case TEST-2026-001'; Confirm'Legal hold placed.'; chip Held; Retention card 'Legal hold: Yes - Dubai Courts case TEST-2026-001'; Propose disposal disabled; file appears with 'Under legal hold' filter
Hold needs a reasonPlace legal hold with an empty matterRefused: 'Say why the file is held - the legal request or matter.'
Release legal holdA held fileMore > Release legal hold; reason; Confirm'Legal hold released.'; hold reason cleared; Propose disposal enabled again; audit 'hold lifted'
Hold an indexed fileAn attachment of a test sales orderPlace legal hold on itHeld in the library only (index row); the sales order and its attachment are not changed; shown Held in the Library
Retention date (from filing date)Upload a Contract (COMMERCIAL 5 y from filing) on 2 Oct 2026Retention cardPolicy 'Commercial records'; Eligible 02 Oct 2031 (2 Oct 2026 + 5 years)
Retention date (from expiry)Type with PERSONNEL (5 y from expiry); file expires 15 Mar 2027Retention cardEligible 15 Mar 2032; with no expiry it falls back to the filing date (2 Oct 2026 -> 2 Oct 2031)
29 FebruaryPolicy 1 year from expiry; file expires 29 Feb 2028Retention cardEligible 28 Feb 2029 (no 29 Feb in 2029)
No policyUnclassified file or GENERAL type (no policy)Retention card; try Propose disposalPolicy None, Eligible -; propose refused 'This file is kept until its type has a retention policy; it is not yet eligible.'
Not yet eligibleContract uploaded today (eligible 2031)More > Propose disposal; ConfirmRefused: 'This file is kept until 2031-10-02; it is not yet eligible.'
Propose disposalAn eligible, unheld file (TESTDISP); user A with dms.disposeA: More > Propose disposal; reason 'Test retention ended'; Confirm'Disposal proposed. Somebody else must review it.'; Retention tab 'Disposal: proposed - Test retention ended'; Disposal review lists it, Proposed by A
Propose twiceA proposal already openPropose disposal againNo second row: the open proposal is returned
Disposed file is frozenA disposed fileOpen itNo Edit / New version / Archive / Propose; API edit 'A disposed file is not changed.'; API new version 'A disposed file takes no new versions.'

Retention policies / Document types

ActionWhenWhat you doWhat happens
Make a file eligible today (test set-up)dms.configureNew policy TEST0, 0 years, from filing date; New type TESTDISP using it; upload a file of that typeRetention 'Eligible' = today; the file appears in Disposal review > Past their retention

Disposal review

ActionWhenWhat you doWhat happens
Proposer cannot decideA's proposalA opens Disposal reviewRow shows 'Awaiting another reviewer' (no buttons); API decide by A refused 'Somebody other than the person who proposed it must review a disposal.'
Approve and disposeA's proposal; user B with dms.disposeB: Approve and dispose; confirm the browser promptState approved, Reviewed by B; file state Disposed; bytes deleted from storage; Retention register 'Disposed - tombstones' lists it; versions show 'disposed'; download refused 'This file's content has been disposed of; only its record remains.'; audit 'disposal approved - bytes deleted, tombstone kept'
RejectA proposalB: Reject; confirmState rejected, Reviewed by B; file unchanged; a new proposal can be made later
Decide twiceAn approved proposal (two tabs open)Approve again from the stale tabRefused: 'This record changed. Reload it before saving.' (or 'This disposal is already approved.')
Hold placed after proposalA's proposal openC places a legal hold on the file; B approvesRefused: 'This file was placed under legal hold after the proposal; it is not disposed of.'; bytes kept
Shared bytes surviveFile X and file Y uploaded with identical bytes; X eligibleDispose of X (propose A, approve B); open YY still previews and downloads (the stored object is kept while another file points at it); X tombstone keeps name, hash and versions
Held files never eligibleAn eligible file under legal holdOpen Disposal reviewNot listed in 'Past their retention'

Preview

ActionWhenWhat you doWhat happens
PDF inlineA 3-page PDFOpen itShown in the browser's own PDF viewer inside the page; header '3 pages'; Download works
ImagesA JPGOpen; Zoom in, Zoom out, Rotate, Full screenImage shown; zoom and 90-degree rotation work; full screen toggles
Excel / Word / PowerPoint without LibreOfficeA 2-sheet .xlsx, a .docx with a table, a 3-slide .pptxOpen eachSheets as tables with sheet tabs (first 500 rows, 60 columns, 12 sheets); Word as headings, paragraphs and tables; slides with title, bullet lines and a strip 'n of 3'
Office as PDFServer has LibreOffice or A2N_DMS_OFFICE_VIA_GOTENBERG=1Open a .docxShown as PDF with ' - converted from Office'; converted once and cached by hash
Old Office formatA .doc file, no converter on the serverOpen it'This older Office format needs LibreOffice on the server to preview. Download it to open it.' with Download
CSV, text, e-mail, ZIPA .csv, a .txt over 300 KB, a .eml with an attachment, a .zipOpen eachCSV as a table; text with 'Only the beginning is shown. Download for the rest.'; e-mail with Subject, From, To, Date, Attachments; ZIP lists entries and sizes
Audio / videoAn .mp3 and an .mp4Open eachBrowser player with controls
HTML kept by another moduleAn .html attachment saved by another module (if any)Open it in the library'This file's contents can run in a browser, so it is only downloaded.'; download only

Documents smart button

ActionWhenWhat you doWhat happens
Count across storesA test customer with 1 attachment (Contacts) and 2 library files linked to itOpen the customerSmart button 'Documents 3'; refused or no right -> no button (never a wrong count)
Open narrowed libraryClick DocumentsLibrary opens with bar 'Documents of Contacts: TEST Trading LLC' and only that record's files; 'Show all documents' clears it
Upload from the recordLibrary narrowed to a recordUpload; go to step 3Record type and record already filled; the new file is filed on that record
Other recordsOpen a test sales order, invoice, product, employee, vehicle, manufacturing order and projectEach shows the Documents button with its own count

Expiring documents

ActionWhenWhat you doWhat happens
WindowFiles expiring in 20, 50, 100 days and one expired last weekWithin 30, 60, 90, 180 days30: expired + 20-day (2); 60: + 50-day (3); 90: 3; 180: 4; sorted earliest first; includes other stores (employee passports, vehicle registrations)

Retention register

ActionWhenWhat you doWhat happens
Library files and tombstonesActive, held and disposed library filesOpenActive files with Legal hold reason and Versions; disposed ones under 'Disposed - tombstones (n)'

Storage usage

ActionWhenWhat you doWhat happens
TotalsLibrary holds a 1.5 MB and a 3 MB file; attachments 2 MBOpenLibrary 2 files 4.5 MB; Record attachments 1 file 2.0 MB; KPI 3 files, 6.5 MB; by kind totals add up to the same; only what you can see

Workspaces and folders

ActionWhenWhat you doWhat happens
Create workspace and sub-folderdms.configureNew folder 'Test workspace' (Top level); New folder 'Licences' inside itBoth listed; Inside shows 'Workspace' / 'Test workspace'; Upload and Library Workspace lists include them
Folder with a permissionA user U with dms.view but not hr.private.viewEdit 'Licences': Only for permission hr.private.view; U opens LibraryU no longer sees the folder or any file in it (and its sub-folders); an admin still does; files are re-indexed with the permission
Folder loop refusedFolder A with child BEdit A: Inside = BRefused: 'A folder cannot sit inside itself.'

Document types

ActionWhenWhat you doWhat happens
Create and use a typeNew type TESTLIC, pdf + image, 15 MB, Licence policy, Carries an expiry; upload a 16 MB PDF with itType listed; upload refused 'The file is 16.0 MB; this document type takes at most 15 MB.'
Archive a typeEdit TESTLIC: tick Archived; open UploadNot offered in Upload or Edit lists; existing files keep it

Retention policies

ActionWhenWhat you doWhat happens
Edit a policyA file under COMMERCIAL eligible 2 Oct 2031Edit COMMERCIAL: 7 yearsThe file's Eligible date becomes 02 Oct 2033 (computed live); audit 'retention saved - 7 years from created'

Indexed stores

ActionWhenWhat you doWhat happens
Which stores you can openA user with dms.view and fleet.view onlyOpen Indexed storesFleet documents and Library 'Can open'; Employee documents (hr.private.view), Recruitment (hr.applicant.all), Payroll (payroll.view) etc. 'Hidden from you'

Applications > Documents > Features

ActionWhenWhat you doWhat happens
Turn off Retention and disposalAdmins A and BA proposes Retention and disposal = Off; B approvesMenus Disposal review, Retention register, Retention policies disappear; saving a policy or deciding a disposal refused 'Retention and disposal is disabled for this company.' (409 capability_disabled); existing records still readable
Turn off Indexed external storesAdmins A and BPropose Off; approve; press Refresh indexMenu Indexed stores disappears; Refresh index refused 'Indexed external stores is disabled for this company.'
Protected switchesTry to turn off Legal holdLibrary and Legal hold are always on; Legal hold is protected and cannot be turned off

Applications > Documents > Fields

ActionWhenWhat you doWhat happens
Hide Document dateAdmins A and BSet Document date = Hidden; approve; open Upload and a document recordDate box gone from the wizard and the record (unless a value exists, then shown disabled)
Require Folder descriptionSet Folder description = Required; approve; create a folder without oneRefused: 'Folder description is required by this company.'; label shows *