Dear George, took me a while but I know now what is happening. OK, this is lack of documentation on our part and code not yet implemented (more like not tested...) for a very specific use case. Will explain
still, since AMI is not the release run yet (means it has things working quite well, others on the test, others we know not, but coding for them and options exposed that will do not do anything...but believe me it actually works and you can ingest mass amount of stuff)
I recommend that you first subscribe to the GitHub repo (watch) because it will evolve faster during the next weeks to cover the missing parts and also to get into a versioning number roadmap.
If you are running a recent (last few weeks) 1.0.0-RC1 deployment AMI should be using this in your composer file "archipelago/ami": "dev-main", which is this GitHub branch "main" at
First the error. Wrong spot for now.
Do not use (yet) this
http://localhost:8001/admin/structure/importeradapter. That interface is not meant (yet) for actual ingest but to configure "canned" ingest strategies for users with less credentials. The idea is that eventually you/someone will do all the mapping/configuring that AMI needs to be able to read from a CSV and generate the data you want. And you will not want other users to have to go through that so that section will allow you to create a single config that will be exposed to those users as a single "Ingest your Super Set" link/button and will do a LOT of checking on the CSV, removing the flexibility of this to enforce needs/ways.
But since we changed a lot in the actual ingest step, its not "in touch now" with the rest and needs cleanup. Which I will do today!
Also, let's do a screen share and we can record a video since batch ingest is actually nice and fast. In the meantime some info on what works.
Alert: long post ahead, read only if you want to. Every of my post can be replaced by a Video or ongoing better docs.
Ok, to our (long) business (what do to)
The workflow that is tested as now (without setting special things up)
1.- You go to Admin / Content and you will see a button with a + sign (blue as admin) that says "start an AMI set"
2.- That will give you a multi step form. Select "Spreadsheet Importer", press next
3.- Select "Create New Ados" from the operation (the other modes are trickier and deserve a Video or a full Musical from our part + testing scenarios so you do not need to guess)
4.- Upload a CSV (question is how should that CSV look like? Good question George. Allison will share/publish an example CSV with a few rows that fetches assets remotely and also uses your already present demo assets and with some basic metadata later during the week, she is very busy right now testing our code so we can fix/improve and do better but CSV will be shared!), but the gist is there is not a single CSV that works. It depends on how each ROW is going to be mapped to your expectations (expectations in the form of JSON and files). There is a demo twig template in the RC1 deployment for that. Super simplistic that assumes that every column can be either a simple String OR an actual JSON snippet (its the lowest processing of a twig template) but meant to be verbose about what is happening. Basics are:
4.1 Columns can be mapped to data needs. Some can point to files (if many separated by ;), and you can have many column, we recommend one per type of tile "images", "documents", "models", "videos", "audios". These values an be a path to an existing file accessible to your docker container. e.g your d8content folder (which internal will be seen as /var/www/html/d8content/, so if you copy a file named cat_001.jp2 there the cell in the spreadsheet under the "images" column Neds to be /var/www/html/d8content/cat_001.jp2, it can be also a full url (e.g
CAT URL here.. paste plain in the spreadsheet) and Archipelago will get it for you, or if can be an S3 path too. s3://georges_folder/cats.jp2 (you can upload that one to your local minio at localhost:9000 inside a cats folder (hint, if in S3 archipelago will respect the place and will not try to move it somewhere else, the can be good but also warning, bad. We may want to make that an option in the near future)
4.2 Some columns are needed
- node_uuid (can be empty, this is for migrations in case you want to keep the UUID, if not archipelago will give you one
- type (Book, etc, anything you normally would set via a webform)
- label (The title of the Object)4.3 Some are optional but recommended.
- ismemberof
- part_of
- etc (etc because you can connect objects using any Object to Object relationship that matches your needs/predicate)
This columns can hold 3 types of values:
- empty (like nothing not the word empty) to make an object member/connected to nothing)
- an integer, if the object will be connected to another row in the same Spreadsheet (if you ingest a collection in the second row - first are the headers - then a third row can have the number "2" in its ismemberof. On ingest archipelago will make that row 3 a member of the collection generated on row 2.
- an UUID. If UUID is used it will connect to an already ingested Object
- 4.4 metadata. Every column header will become a JSON Key and each cell value a JSON value for that key. You can use directly JSON snippets or do crazy logic (like putting a lot of values separated by semi colons and then use the twig template *you will select in another step* to split the values, capitalize them, clean them, many cool stuff and generate the correct JSON structure.
5.- After that a lot more happens and you get to select mappings, approaches etc. This will end being a too long post so I think we could have a tiny screen sharing session and record a video and share with everyone. Still, please give it a try/test options, twig template mapping and direct are both working, I would to see what happens when someone is exposed to the UI without docs (sorry for the experimentation)
6.- If you manage to get through all the steps you will see a ZIP upload (no need to upload just press , legacy thing we will probably implement soon to allow also have a ZIP source for your assets as we do in our predecessor module). At the end you will generate an AMI set (which is a bundle of your CSV enriched and prepared, the settings you used, etc). That set now can be ingested. uFF!
Long, Sorry
Allison and I will get back with some dates for a full tut and will have the docs by Monday (pinky promise)
Thanks!
D