| Data shape | core critical | Evaluation | required in app meta? | Add later? | db table | Uploaded app | Single File app | Store view in ds-host | app distribution site | |
| App Name | I18N (?) string | in metadata or in code | warn if missing | app (latest) and app version | dropapp.json | run createApp | show | appinfo.toml | ||
| App Version | semver | for sequencing of versions | in metadata or in code | required (could default to 0.0.1 if missing) | app version | dropapp.json | run createApp | show | appinfo.toml | |
| App Entrypoint | rel path from app archive root | for running | default of app.js or app.ts | if not sfa and not default | app version (or not? bake that into bootstrap.js at install time?) | dropapp.json | no - there's only one file | appinfo.toml | ||
| ds lib support version | semver of ds_lib_support | what sandbox code to run it with | run deno info to see what version it loads | coherent value required | Right now we have DS api at 0, and it's fine, so could potentially add later. | app version | dropapp.json | eval in getApp | show | appinfo.toml |
| Data Schema | integer for now | yes | run createApp | schema 0 if none (should have no disk access?) | app version | dropapp.json | evaluate | show | appinfo.toml | |
| Migrations | array of objects with fields: from, to? | yes, tells if it's possible to migrate appspace data | run createApp, look at migrations | |||||||
| Route risk | Public-dynamic, public-static, private | reun create app get routes | ||||||||
| Permissions (later) | yes | run createApp | evaluated | Assume no permissions to grant if absent | gets it own table probably? Unclear | dropapp.json | show | appinfo.toml | ||
| Signature | string with sig and pub key? | for app identification and hence sequencing (?) | signature must be against an archive to be verifiable | No. sign archive and put sig in presentation layer | Not signed if no signature field. | Probably at least a bool? Or put full sig in app table? | Should be included | not possible? | show | appinfo.toml |
| Vendored | bool | yes to know if net needed | deno info | evaluated | Assume not vendored unless specified | dropapp.json | evaluate | show | appinfo.toml | |
| Code characteristics | Remote, TS, none | yes | deno info on app code with json output? | evaluated | Assume remote, TS. Note these can be evaluated locally (probably). | dropapp.json | show | appinfo.toml | ||
| App Icon | rel path to file | optional, name + atach | app (latest) and app version | Include in package | no or link? | show | appinfo.toml link? | |||
| App Main Screenshot | rel path to file | No bc you need access to it without loading archive | Nice to have. Can display app withtout this. | app | Include in package | no or lnk? | show | appinfo.toml link? | ||
| DS Packaging Version | int? x.y? | for reading the metadata | in metadata or in code | required (could infer from DS API version?) | Assume it's the first released version if not mentioned? | dropapp.json | if package ver means metadata ver, then yes | use internally | appinfo.toml | |
| Language(s) | metadata. single string, array, or lang => completion table | yes, later when users specify language | in metadata | notice if missing | Assume en | app and app version? Or leave for later | metadata.json | show | appinfo.toml | |
| Authors | see package.json? | in metadata or in code | warn if missing? | metadata.json | show | appinfo.toml | ||||
| App distribution URL | URL string | for app identification | in metadata or in code or determined at acquisition | ? | app, for app identification to user | metadata.json | show | appinfo.toml | ||
| Repository | URL | in metadata or in code | optional | metadata.json | show | appinfo.toml | ||||
| Related apps | array of url, id, relation | optional | metadata.json | show | appinfo.toml | |||||
| Keywordfs | array of English strings (not I18N so they match up) | optional | metadata.json | show | appinfo.toml | |||||
| Homepage | URL | in metadata or in code | optional | metadata.json | show | appinfo.toml | ||||
| License | SPDX value, and URL and or path to file | in metadata or in code | warn if missing | Include in package | link to license text | show | appinfo.toml plus link | |||
| Funding | URL but maybe also I18N string? | optional | app (always use latest) | metadata.json | show | appinfo.toml | ||||
| Help/docs/support URL | URL(s) | ? | App only (only latest info is relevant. | metadata.json | show | appinfo.toml | ||||
| Age appropriateness | (is there a standard for this? | metadata.json | show | appinfo.toml | ||||||
| Download Size | either string, or integer number of bytes? | No, measure archive and report on outside. | metadata.json | not realy relevant | sho | appinfo.toml | ||||
| Release date | YYYY-MM-DD string? Should it be keyed to version to prevent accidental stale data? Or do we assume it's a generated date? | |||||||||
| Features? | I18N string or something | metadata.json | show | appinfo.toml | ||||||
| Privacy | Would like defined anti-patterns like YUNoHost | optional | metadata.json | show | appinfo.toml | |||||
| App Description (short) | I18N string | app | show | |||||||
| App description (long) | I18N string (long) or ref local file or URL | optional | ? | show | appinfo.toml | |||||
| More schreenshots | table of (I18N title, I18N alt, rel filepath) | No. Presentation | ? | ? | appinfo.toml + links | |||||
| Release Notes | rel path(s) to I18N Md file -- or just single language for this? | notice if missing. Ugrading without rel notes is bad. | Would be nice to have | show | ?? | |||||
| Actual Help Files | presentation | ? | no | appinfo.toml link | ||||||
| Listing of versions | array of semvers | Need collection of existing versions | ? | Include: signature? release date (good info) | show / use internally | at /versions ? |