{"path":"/guide/how-it-works/wf-store/assets","content":{"title":"Assets, components and renditions","summary":"Keep original source separate from the text used for retrieval.","breadcrumbs":"[Everything guide](/guide) / [How Everything works](/guide/how-it-works) / [wf-store](/guide/how-it-works/wf-store)","body":"A wf-store asset has an opaque stable asset ID and immutable source bytes. Everything page revisions use JSON source. Changing the writing creates a new asset revision; editing tags changes interpretation of retained source.\n\nUploads use asset-owned components and a commit operation. Everything's owner tools prepare a source component and a useful UTF-8 rendition in the same asset. The rendition is searchable text, not another page or a second ordinary asset.\n\nFor JSON pages, the owner service extracts readable values to build the rendition. Search chunk ordinals and byte coordinates refer to rendition text, so a coordinate must not be assumed to index into the original JSON bytes.\n\nwf-store also distinguishes optional search context from rendition. Context describes what an asset is; rendition says what is in it. Everything's initial guide workflow does not require a custom context or conversion pipeline.\n\nOriginal source can be recovered independently of whether search admission has finished. Keep returned IDs after partial operations so inspection can target the actual asset rather than guessing from a search miss.","navigation":"[Everything guide](/guide) Â· Section: [wf-store](/guide/how-it-works/wf-store) Â· Previous: [wf-store](/guide/how-it-works/wf-store) Â· Next: [One corpus per environment](/guide/how-it-works/wf-store/corpora)","related":[{"title":"Ingestion and search readiness","url":"/guide/how-it-works/wf-store/readiness"},{"title":"One corpus, many content types","url":"/guide/how-it-works/wf-store/corpora"}]}}