{"eid":"data-caltech-edu","name":"InvenioRDM platform","domain":"data.caltech.edu","resolved_by":"host","topics":["storage"],"n_records":2,"best_vorder":4,"review":null,"aliases":["CaltechDATA (InvenioRDM, California Institute of Technology)","InvenioRDM platform","InvenioRDM platform class — CaltechDATA, TU Graz, TU Wien, TalTech, KTH, Bamberg, MSD-Live","data.caltech.edu"],"records":[{"rid":"storage/caltechdata","card":{"rid":"storage/caltechdata","eid":"data-caltech-edu","topic":"storage","slug":"caltechdata","provider":"CaltechDATA (InvenioRDM, California Institute of Technology)","url":"https://data.caltech.edu","domain":"caltech.edu","category":"academic","tier":null,"verdict":"fails-identity","vorder":4,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"1 TB of free storage per user, announced 2026-06-26, 'made possible through a National Science Foundation Campus Cyberinfrastructure grant' and backed by the...","duplicate_of":null,"n_unknown":6},"record":{"topic":"storage","slug":"caltechdata","provider":"CaltechDATA (InvenioRDM, California Institute of Technology)","url":"https://data.caltech.edu","category":"academic","free_tier":{"stated":"1 TB of free storage per user, announced 2026-06-26, 'made possible through a National Science Foundation Campus Cyberinfrastructure grant' and backed by the Open Storage Network. Additional storage $200/TB one-time. 550 files max per record.","unit":"objects","metered_on":"stored-bytes","source_url":"https://libanswers.caltech.edu/faq/163212","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://libanswers.caltech.edu/faq/163212","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://libanswers.caltech.edu/faq/163212","notes":"not stated"},"egress":{"terms":"Unmetered — no egress terms; downloads stream straight from data.caltech.edu (I saw no redirect). Content-Security-Policy references caltech2.osn.mghpcc.org, i.e. storage sits on the Open Storage Network, an NSF-funded academic fabric","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"InvenioRDM REST API (/api/records, files under /api/records/<id>/files/<key>/content); purpose-built client caltechlibrary/caltechdata_api (github.com/caltechlibrary/caltechdata_api, 13 stars); the whole instance's source is public at caltechlibrary/caltechdata (11 stars) so the quota config is auditable","chaining":"1 TB is the largest single free allocation I found in this niche and it is per user, not per record. Records themselves are not account-capped, so 1 TB is a floor rather than a ceiling. Institutional deployments like this are exactly the 'more generous than Zenodo' pattern the brief predicted.","limits":[],"limits_note":"550 files per record; deposit requires a Caltech (access.caltech) identity, which is the real gate — the API reads are fully anonymous but writes are not open to the public.","identity_cost":{"kind":"institution","detail":"derived from the record's prose, not from an identity field, and no signup was executed: e $200/TB one-time. 550 files max per record. Anonymous API reads work and are generous (X-RateLimit-Limit: 500 observed on /api/records). The 1 TB allocation is explicitly funded","country":null},"reliability_note":"Anonymous API reads work and are generous (X-RateLimit-Limit: 500 observed on /api/records). The 1 TB allocation is explicitly funded by a time-bounded NSF grant, so the number has a funding horizon attached.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://libanswers.caltech.edu/faq/163212","date":"2026-10-21","proved":"read live (Last Updated Jun 29, 2026): 'All users with an access.caltech account get 1 TB of free storage through CaltechDATA. Additional storage requires a one-time charge of $200 / TB ... Individual records can include a maximum of 550 files.'"},{"url":"https://library.caltech.edu/blogs/news/caltechdata-expanded-storage","date":"2026-10-21","proved":"read live, dated 06/26/2026: 'All researchers at Caltech can now upload up to 1 TB of data for free ... possible due to the Open Storage Network'"},{"url":"https://data.caltech.edu/api/records?size=1","date":"2026-10-21","proved":"probe: GET -> 200 with X-RateLimit-Limit: 500; GET /api/records/mhmjd-4pr39/files/... content endpoint -> 200, files.enabled: true, per-file links resolve"}],"verdict":"fails-identity","verified_at":"2026-10-21T00:00:00.000Z","notes":"1 TB of free storage per user, announced 2026-06-26, 'made possible through a National Science Foundation Campus Cyberinfrastructure grant' and backed by the Open Storage Network. Additional storage $200/TB one-time. 550 files max per record.","extras":{"dead_end":{"failure_class":"quota","why":"1 TB of free storage per user, announced 2026-06-26, 'made possible through a National Science Foundation Campus Cyberinfrastructure grant' and backed by the Open Storage Network. Additional storage $200/TB one-time. 550 files max per record.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"the quota is real and unreachable: identity is the binding constraint, and it is not one of the six limits kinds"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":1.0,"unit":"TB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]},{"rid":"storage/inveniordm-platform-class-caltechdata-tu-graz-tu-wien-ta","card":{"rid":"storage/inveniordm-platform-class-caltechdata-tu-graz-tu-wien-ta","eid":"data-caltech-edu","topic":"storage","slug":"inveniordm-platform-class-caltechdata-tu-graz-tu-wien-ta","provider":"InvenioRDM platform class — CaltechDATA, TU Graz, TU Wien, TalTech, KTH, Bamberg, MSD-Live","url":"https://data.caltech.edu","domain":"caltech.edu","category":"academic repository / InvenioRDM 14.0–15.0","tier":null,"verdict":"fails-identity","vorder":4,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest,rclone,cli","egress_metered":0,"per_object_bytes":10000000000,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":10,"usd_month":null,"usd_per_tb_month":null,"summary":"Per-record, NOT per-account: RDM_FILES_DEFAULT_QUOTA_SIZE = 10 GB and RDM_FILES_DEFAULT_MAX_FILE_SIZE = 10 GB, with APP_RDM_DEPOSIT_FORM_QUOTA maxFiles = 100...","duplicate_of":null,"n_unknown":5},"record":{"topic":"storage","slug":"inveniordm-platform-class-caltechdata-tu-graz-tu-wien-ta","provider":"InvenioRDM platform class — CaltechDATA, TU Graz, TU Wien, TalTech, KTH, Bamberg, MSD-Live","url":"https://data.caltech.edu","category":"academic repository / InvenioRDM 14.0–15.0","free_tier":{"stated":"Per-record, NOT per-account: RDM_FILES_DEFAULT_QUOTA_SIZE = 10 GB and RDM_FILES_DEFAULT_MAX_FILE_SIZE = 10 GB, with APP_RDM_DEPOSIT_FORM_QUOTA maxFiles = 100. Records are unlimited. This is the structural inverse of Dataverse: InvenioRDM ships a real quota and it is per-object, so total space is unbounded while each record is capped at 10 GB.","unit":"GB","metered_on":"unstated","source_url":"https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"10 GB/file","bytes":10000000000,"source_url":"https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py","notes":"not stated"},"egress":{"terms":"Cloudflare-fronted on every instance checked.","metered":false},"interface":["rest","rclone","cli"],"interface_detail":"REST (/api/records), InvenioRDM REST API v1","tooling":"curl / invenio-cli / rclone via REST","chaining":"Excellent for the archive workload if registration were open, because 10 GB x unlimited records is unbounded in aggregate. It is not open on any instance tested.","limits":[{"kind":"per-object-cap","value":"10 GB/file","source":"https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py"}],"limits_note":"per-object-cap 10 GB/record and 10 GB/file, 100 files/record. No per-account cap exists in the platform, so no instance can report one.","identity_cost":{"kind":"institution","detail":"institution","country":null},"reliability_note":"All seven instances 404 on /signup/, which in InvenioRDM means SECURITY_REGISTERABLE is off; only Zenodo (already counted elsewhere) and the CERN demo return anything other than 404.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/config.py","date":"2026-10-21","proved":"RDM_FILES_DEFAULT_QUOTA_SIZE = 10 * (10**9); RDM_FILES_DEFAULT_MAX_FILE_SIZE = 10 * (10**9); RDM_FILES_DEFAULT_MAX_ADDITIONAL_QUOTA_SIZE = 0"},{"url":"https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py","date":"2026-10-21","proved":"APP_RDM_DEPOSIT_FORM_QUOTA = {'maxFiles': 100, 'maxStorage': RDM_FILES_DEFAULT_QUOTA_SIZE}"},{"url":"https://data.caltech.edu/api/records?size=1","date":"2026-10-21","proved":"200, records served; /signup/ — 404"},{"url":"https://repository.tugraz.at/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 404"},{"url":"https://researchdata.tuwien.ac.at/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 404"},{"url":"https://data.taltech.ee/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 404"},{"url":"https://datarepository.kth.se/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 404"},{"url":"https://fd-repo.uni-bamberg.de/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 404"},{"url":"https://data.msdlive.org/api/records?size=1","date":"2026-10-21","proved":"200; /signup/ — 502"},{"url":"https://inveniordm.web.cern.ch/signup","date":"2026-10-21","proved":"308 (registration enabled on the demo); https://zenodo.org/signup — 308"}],"verdict":"fails-identity","verified_at":"2026-10-21T00:00:00.000Z","notes":"Per-record, NOT per-account: RDM_FILES_DEFAULT_QUOTA_SIZE = 10 GB and RDM_FILES_DEFAULT_MAX_FILE_SIZE = 10 GB, with APP_RDM_DEPOSIT_FORM_QUOTA maxFiles = 100. Records are unlimited. This is the structural inverse of Dataverse: InvenioRDM ships a real quota and it is per-object, so total space is unbounded while each record is capped at 10 GB.","extras":{"dead_end":{"failure_class":"quota","why":"Per-record, NOT per-account: RDM_FILES_DEFAULT_QUOTA_SIZE = 10 GB and RDM_FILES_DEFAULT_MAX_FILE_SIZE = 10 GB, with APP_RDM_DEPOSIT_FORM_QUOTA maxFiles = 100. Records are unlimited. This is the structural inverse of Dataverse: InvenioRDM ships a real quota and it is per-object, so total space is unbounded while each record is capped at 10 GB.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"the quota is real and unreachable: identity is the binding constraint, and it is not one of the six limits kinds"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":10.0,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}]}