[Moved to https://github.com/standardnotes/app/tree/main/packages/docs] Documentation for Standard Notes users and developers | https://docs.standardnotes.com
Hi, I'm trying to implement a standard notes sync server and would like to know which fields are optional and which fields are not. The documentation only said that the api field "must not be null" but there are no such comments for other fields. I doubt that they are all required cause surely a deleted item does not need to have a content field. It would be nice if the documentation could clear things up.
When users set up an extension locally (https://docs.standardnotes.org/extensions/local-setup), there can be some confusion (or just misreading) around what should go under the area property in ext.json. Many just leave the default value, and thus extensions like Folders or Action Bar don't work properly when setup. This occurred to me as well, and I had to do some digging to determine the correct values to use for a given component.
I propose adding a diagram to the aforementioned page under step 4; something like the below would make things crystal clear. Although it would have to be more professional-looking and polished.
In addition, (perhaps) more emphasis should be placed on the url and area properties because those are the important ones that affect the normal function of extensions.
In order to get SN to display a dock icon for your theme (a circle in the lower right corner of the app that allows you to quickly toggle themes), add the following payload into the your ext.json file:
The /auth and /auth/sign_in interfaces needs to return a user object with uuid and email in addition to the session token
The /items/sync interface now uses conflicts instead of unsaved to pass conflicts back to the client
These are the ones I have noticed by far. I think that having the standard documentation up-to-date can facilitate more implementations and also make the protocol itself easier to audit.
In addition, I think that the standard should not force implementations to use standard-compliant JWT, since it contains many pitfalls that makes a truly standard-compliant implementation vulnerable (most real-world implementations should not be actually standard-compliant though). Since I don't think the client should care about what sort of token the server uses, maybe the documentation can just say "the server should return some kind of session token that can be used to identify the user and the session".
I was trying to follow the steps at Local Setup to install a new theme. I ran http-server in a theme extension's directory and installed it with the URL http://localhost:8001/ext.json. This is on Windows. Then I changed some things and uninstalled the extension. When I re-installed the extension, the changes were not reflected in the application. The only way to fix this was to change the extension identifier and port number in the url every time I make a change. It's confusing since otherwise it looks like the install succeeds.
On site Securing HTTP traffic of your Sync server https://docs.standardnotes.org/self-hosting/https-support/ the command for testing nginx must be sudo nginx -t
instead of nginx -t
otherwise nginx will report strange and confusing errors for a correct setup.