spraakbanken / mink-backend

Flask application serving as a backend to Min Språkbank
MIT License
0 stars 1 forks source link

Add route for uploading metadata in yaml #82

Open anne17 opened 11 months ago

anne17 commented 11 months ago

A user should be able to upload a resource of type "metadata". This should be a yaml file matching one of the formats specified in these templates. The uploaded file should be verified with a json schema (does not exist yet), either by the frontend or the backend.

If the user has superuser permissions (e.g. "write" in "Mink-App"), the yaml file should somehow be incorporated into our metadata API

Some more notes on this in Swedish:

Kunna ladda upp metadata-filer i Mink samt publicera på resurssidan

anne17 commented 10 months ago

Några saker som @arildm och jag kom fram till ang. metadata-arbetsflödet i Mink:

anne17 commented 10 months ago

Lite info till @arildm och @MartinHammarstedt i fall ni ska fortsätta med detta medan jag är borta.

Nu har jag implementerat några nya routes:

Dessa fungerar hyfsat. De är releasade och dokumenterade (https://ws.spraakbanken.gu.se/ws/mink/api-doc#tag/Manage-Metadata). Här är några saker till som jag har tänkt på men inte hunnit med:

arildm commented 9 months ago

Har kollat på detta och börjat anpassa frontenden nu!

En sak som jag tycker saknas är ett anrop för att se om användaren har tillåtelse att skapa metadataresurser. Dvs om den finns med i METADATA_ORG_PREFIXES. Så att vi inte visar den delen av gränssnittet för alla.

Kanske som en route typ /user-info? Jag tycker det känns troligt att det kommer tillkomma fler detaljer som rör användaren. Det finns ju redan en check om användaren har tillgång till admin-läget. Den checken görs både i frontend och backend just nu, men det vore kanske snyggare att det bara är backenden som gör det, som en del av /user-info då.

Ett svar från /user-info skulle alltså kunna se ut typ:

{
  "id": "httpsidp3.it.gu.seidpshibboleth-xmatargu.se",
  "org_prefix": "sbx",
  "app_grant": "ADMIN",
  // + status, return_code, message
}
arildm commented 8 months ago

~Jag kan skapa och ta bort metadataresurser. Däremot får jag bara fel från /upload-config. Jag skickar abotidning.yaml med PUT till upload-config?corpus_id=mink-u9uozrx2yz, och får:~

{
    "status": "error",
    "message": "Failed to upload config file for 'mink-u9uozrx2yz'",
    "info": "Failed to upload contents to 'mink-data/corpus/u/mink-u9uozrx2yz/config.yaml': bash: mink-data/corpus/u/mink-u9uozrx2yz/config.yaml: No such file or directory\n",
    "return_code": "failed_uploading_config"
}

Edit: Nevermind! I just confused /upload-config with /upload-metadata-yaml!