Hello, I want a third party service (simple nodejs application, which is written by me, but later not controlled by me) to be a able to write files to a specific bucket and update/add entries in a specific database collection. I don't want to give this service an API key with files.write or documents.write scopes, because then it could delete any file in any bucket and any document in any database collection. I tried to authenticate as a user, but I quickly noticed that its not possible to create and use a session using the server SDK. I tried to use the client SDK:
import { Client, Storage, Account, ID } from "appwrite";
const client = new Client()
.setEndpoint("<my endpoint>")
.setProject("<my project id");
const account = new Account(client);
const session = await account.createEmailPasswordSession(
"testaccount@mail.com",
"password"
);
client.setSession(session);
const storage = new Storage(client);
await storage.createFile("<bucket id>", <unique id>, <file>);
but this also doesn't work without it running in a browser.
Now my question is, if there is any way to either restrict the API key scopes to be more granular, or somehow authenticate as a user using the server SDK or any other way I am overlooking to solve my problem?
Recommended threads
- 1:1 relationship doesn’t sync after re-a...
Hi, I’m trying to use a two-way one-to-one relationship. It works fine when I create a record with the relationship set, and it also works when I unset it. But ...
- Upsert with setting permissions
Hi there, I am using self-hosted appwrite v1.7.4 and trying to use the bulk update stuff that was released with 1.7.x. Unfortunally I found that there is an ser...
- Github connection error - Self Hosted Ap...
I am trying to connect my github account to deploy a project to sites, but Connect to Gtihub button is disabled. I have configured all Env variables needed for...