I found the answer by peeking at the network view when doing it by hand, it is simply

(with “fibery/secret”: “ba511eea-f8bb-447e-9fda-b8c5fddfaa22” in the answer to the upload request)
I found the answer by peeking at the network view when doing it by hand, it is simply

(with “fibery/secret”: “ba511eea-f8bb-447e-9fda-b8c5fddfaa22” in the answer to the upload request)
I’ve made great progress on one area : I can now with this script (it’s scala but you should be able to port it easily to python or javascript) update all the entities with markdown + images, in a chosen field.
I’m now struggling with creating documents and folders from the API. I have not found documentation here and based on these posts I’m worried if this is possible.
Maybe @Oleg or @Chr1sG you could clarifiy the status about the API for managing documents and folders ?
Hi, @Michel_Daviot
Please find my js function to create/update docs
const getDocumentsBatchCommand = (command) => async ({client, format, args}) => {
logger.info(`[Fibery API]: Collab doc command: ${command} with ${args.length} ${format} docs`);
return client.post(`api/documents/commands`, {
searchParams: {
ratelimit: 'on',
format,
},
json: {
command,
args,
},
headers: await getAuth(),
});
};
const updateDocuments = getDocumentsBatchCommand('create-or-update-documents');
const appendDocuments = getDocumentsBatchCommand('create-or-append-documents');
where format
is one of md
, json
, html
or text
and args is array of elements which looks like
{
secret: `XX-YY-ZZZ-it is just a doc secret`,
content:`Hello`
}
Please find below an example of creating folder
const createFolder = async ({client, app, name, parent = null, publicId = null}) => {
const operationId = uuid.v4();
const folderId = uuid.v4();
const result = await client.post(`api/views/json-rpc`, {
json: {
jsonrpc: `2.0`,
method: `create-folders`,
params: {
values: [
{
'fibery/Parent Folder': parent,
'fibery/id': folderId,
'fibery/name': name,
'fibery/container-app': {'fibery/id': app.id},
'fibery/public-id': publicId,
},
],
},
id: operationId,
},
headers: await getAuth(),
});
if (result.error) {
throw new Error(result.error.message);
}
return _.get(result, `result[0]`);
};
In my code call looks like
const folder = await fibery.createFolder({
app: app,
name: folderName,
parent: {'fibery/id': getFiberyId(step)},
});
I’ve added some documentation to the script. Also here is how I export from notion :
Thanks @Oleg I’ll try those to upload the rest of my data !
Nice, I believe we will add support for integration apps in future to allow the import of documents and folders. It is partly implemented, but I am waiting for fibery core implementation of sub-documents.
I guess I did not make my request clear enough, I want to create a document in a folder (or directly in a space), how can I specify the document name and location ?
Never mind, I manged to create a folder and I will be able to guess how to create a document by peeking at the developper tools while doing it from the front-end. It was a good idea to use the same API for front-end and automations
I’ll finish this next week, thanks again for your help !
I’ve updated the scala script, it is now also able to import all mardown files into fibery documents (inside folders).
As documented in the script, I was surprised that the secretId is generated on the client side (what would happen if a secret is reused ?).
Note for future users : it is not perfect, for instance links to notion pages are note translated to internal fibery links. But it saves some time when importing hundreds of documents with attached images !
I guess you’ve seen this topic:
I reckon you could use the same logic to create working links within Fibery to replace the Notion links.
I had not seen it, thanks ! We had not that many internal links to migrate so we updated them by hand, but the automation is a good reference.
Thanks Michel_Daviot, this script is really promising. For us to move to fibery a massive md import is needed, keeping the links between documents. This doesn’t seem to be easy (or supported by this script).
Is Fibery going in this direction with a native import? Many teams are stuck with data from other systems, might facilitate migration.
This is plain text files on my hard drive. Well, and images.
How are they linked? Is it via some proprietary syntax?
Using double bracket syntax [[title of the markdown file without the .md extension]]
Good news, Everyone! This is Kalman, PM at Fibery. We’ve just started work on the markdown import feature and can’t wait to see where it takes us.
I’ve been going through the topic, and some seriously awesome use cases and ideas are out there. If you have more to share, now’s the time to let it rip!
Big thanks to all of you for your insights. Please keep them coming!
thanks,
kalman
First version of markdown import is here
this is awesome!! thanks so much for bringing this into fibery!
will the markdown (soon/at all) support
[[links]] to other files?
YAML frontmatter? (translate to columns in database)
automatic translation of - tasks to “task”-items in a database
(and would that also be possible to run through already imported files?)
this would make this into a perfect companion to obsidian and finally a replacement for it in my workflow.
i am really excited right now!
Wow, we’re so glad you’re excited about the recent releases on this topic.
As for your questions, the good news is that all the features you’ve mentioned are on our radar and have been added to our backlog but we don’t have a specific ETA for them just yet.