FOXDEN is a collection of services intended to facilitate the capture, curation, and dissemination of sample and dataset metadata and provenance. The FOXDEN homepage can be found at https://foxden.classe.cornell.edu:8344.
Sample-level metadata records can be constructed and, if desired, injected directly into FOXDEN directly from SPEC during data collection. To set up FOXDEN record automation, in SPEC run foxden_setup. In the menu that comes up, configure options as desired:
on/off: if on, will construct a sample-level metadata record when newsample is run from SPEC, and inject to FOXDEN or just save the record .json according to the setting chosen under “record submission location” below.on/off: if on, will construct a SPEC Scan Service record .json after each SPEC scan and submit to the FOXDEN SPEC Scan Service https://foxden.classe.cornell.edu:8344/info/specscansenable/disable:
newsample is run:
newsample, SPEC will prompt for metadata values interactively, and save the resulting composite .json in /nfs/chess/aux/cycles/[cycle ID]/id3a/[btr ID]/[sample ID]/[sample ID.json]newsample [sample name] [sample .json with full path], for example:
newsample lshr-1 /nfs/chess/aux/cycles/2026-1/shanks-4838-a/example_sample_json.json
SPEC will combine the information in the specified .json file with BTR-level metadata specified during newuserid, and save the resulting composite .json in /nfs/chess/aux/cycles/[cycle ID]/id3a/[btr ID]/[sample ID]/[sample ID.json]prod services/file only/dev services:
prod services: records will be submitted to the production server https://foxden.classe.cornell.edu:8344file only: metadata .json will be created, but will not be injected into FOXDENdev services: records will be submitted to the development server https://foxden-dev.classe.cornell.edu:8344FOXDEN records can also be created manually via webform at https://foxden.classe.cornell.edu:8344/meta. In the dropdown menu labeled “Beamlines” on the left side of that page, choose a beamline schema (probably 3A if you’re reading this guide!) to use the ID3A schema for a record describing sample-level data collected at the beamline, or choose “user” to define your own schema.
Record injection from command line: It is also possible to inject records directly from the Linux command line. To do this, you must be working from within the CHESS network (e.g. on the station computer, lnx201, etc) and you must be a member of the “foxdenrw” LDAP group.
Provided these conditions are met, follow this procedure:
export FOXDEN_CONFIG=/nfs/chess/user/chess_chapaas/.foxden.yaml
export KRB5CCNAME=FILE:$HOME/krb5cc_ccache
kinit
foxden token create write
foxden meta add --schema=[schema you wish to use] [.json file containing record to be injected]
For example, to inject a record ceo2.json that conforms to the ID3A metadata schema, I would run the command foxden meta add --schema=ID3A ceo2.json from the directory containing ceo2.json.