Abdulramon Jemil
Abdulramon Jemil
CCConvex Community
Created by winsoroaks on 12/2/2023 in #support-community
possible to do path alias in convex/tsconfig?
I didn't try it. I haven't worked with Convex in a while
17 replies
CCConvex Community
Created by Abdulramon Jemil on 8/23/2024 in #support-community
What's the name of the cookie used by Convex Auth?
Thanks. Personally, I would like to see the following in the docs: - How the keys used for storage are determined, and how to use them to read tokens manually from their storage source without the library. (Also, the list of the keys) - How to manually validate tokens directly read from the source. - More notes on the configuration of cookies (when cookies are used) e.g. what are the values for samesite, domain, and other necessary ones for the cookies used.
4 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
Why not `ctx.db.query("table").withIndex(vectorIndex)`?
Thanks for the response. Happy to see how these APIs evolve with time. As for 2, the statement "db.query takes place at the same logical timestamp to protect from race conditions" was exactly what I was looking for. While I did guess it, I couldn't find it in the docs (Saw the part written for mutations tho.)
7 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
Why not `ctx.db.query("table").withIndex(vectorIndex)`?
Thanks for the response. 1. Shouldn't TS be able to solve that alongside a clear section about it in the docs? ctx.vectorSearch makes it look like it's very far away from a DB operation, which is not the case. ctx.db.vectorSearch would be better IMO. 2. Could you please provide a simple example of a problem that can arise from this, and how it is solved by the current implementation? I'm unable to come up with one. 3. Yeah, I know they're different. Is this in addition to the existence of queries in action, or is it related to the ctx.runFunction suggestion? Regarding their different properties, isn't that the same case with mutations and actions, while both are still usable with the same ctx.scheduler.runAfter() API?
7 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
Why not `ctx.db.query("table").withIndex(vectorIndex)`?
This gives a more unified API. Also, why not ctx.runFunction or ctx.runFn in actions, instead of ctx.runQuery/runMutation in actions? I guess there's some reason for this, but I can't figure it out. Unifying everything looks like it'll be better.
7 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
Would appreciate the response as a direct reply to the original message though (so I can get notified). Thanks once again
13 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
Hmmmm. Alright, thanks.
13 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
By the way @Michal Srb Can you please see the questions here about db.storage.getUrl()?
13 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
Well, I think the list is not exhaustive. By visiting /.well-known/openid-configuration which is the standard for getting the configuration of an openID provider, the ff is returned:
{
"issuer":"https://admired-sandpiper-807.convex.site",
"jwks_uri":"https://admired-sandpiper-807.convex.site/.well-known/jwks.json",
"authorization_endpoint":"https://admired-sandpiper-807.convex.site/oauth/authorize"
}
{
"issuer":"https://admired-sandpiper-807.convex.site",
"jwks_uri":"https://admired-sandpiper-807.convex.site/.well-known/jwks.json",
"authorization_endpoint":"https://admired-sandpiper-807.convex.site/oauth/authorize"
}
(This is for the deployment of the auth example at https://labs.convex.dev/auth-example) From this, it can be said that /oauth/authorize is also a reserved endpoint that can be used for (custom) HTTP actions (I guess). So by combining the list at https://labs.convex.dev/auth/api_reference/server#authaddhttproutes and the list returned from /openid-configuration, we have:
/.well-known/openid-configuration
/.well-known/jwks.json
/api/auth/signin/*
/api/auth/callback/*
/oauth/authorize
/.well-known/openid-configuration
/.well-known/jwks.json
/api/auth/signin/*
/api/auth/callback/*
/oauth/authorize
I guess there may be others too
13 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
So that would mean that there are certain endpoints where I can't simply define http actions 😐. Alright. By the way @lee What is the nature of the url returned by ctx.storage.getUrl()? I have the ff questions. - Is the returned URL always the same, or does it differ for every call to getUrl()? - Is the returned URL a permanent accessor for the file, or it ceases to work after some time period? - Is there a reliable way to know if a Url was generated from a call to getUrl() or not? (or at least if the url is a valid return value for getUrl())
13 replies
CCConvex Community
Created by Abdulramon Jemil on 8/22/2024 in #support-community
How OIDC with Convex Auth works with HTTP actions endpoints
By convex/token.ts, I meant that (if) I have defined the handler for the action in that file, which I said "assuming I have it configured to work that way" meaning that I have a handler exported from convex/token.ts and I configured it to be accessed via the /token endpoint in convex/http.ts as follows:
http.route({
path: "/token",
method: "GET",
handler: definedHandler,
});
http.route({
path: "/token",
method: "GET",
handler: definedHandler,
});
Sorry for not clarifying enough. I don't have this ATM, I'm just seeking to understand how things work, and if there really will be a conflict if I actually had such.
13 replies
CCConvex Community
Created by fawwaz on 10/11/2023 in #support-community
How to use react-email & Resend to send email through convex action
The convention would prolly be something like convex/.env or similar
38 replies
CCConvex Community
Created by fawwaz on 10/11/2023 in #support-community
How to use react-email & Resend to send email through convex action
Understandable, but most people already know to add env files to .gitignore. (Maybe convex could even check that the file is added to .gitignore on first run of npx convex dev.)
38 replies
CCConvex Community
Created by fawwaz on 10/11/2023 in #support-community
How to use react-email & Resend to send email through convex action
Hi @Thomas , so is it required to add environment variables to the Convex cloud in development? Does convex not work with .env files (at least for dev deployments)?
38 replies
CCConvex Community
Created by winsoroaks on 12/2/2023 in #support-community
possible to do path alias in convex/tsconfig?
@erquhart Is it not possible to just extend the root tsconfig using the extends option (https://www.typescriptlang.org/tsconfig/#extends), so that the whole project uses the same tsconfig, and only specify the options required by Convex in convex/tsconfig as in:
{
/* This TypeScript project config describes the environment that
* Convex functions run in and is used to typecheck them.
* You can modify it, but some settings required to use Convex.
*/
"compilerOptions": {
/* Extend the base config at the root of the project to avoid double maintenance */
"extends": "../tsconfig.json",

/* These compiler options are required by Convex */
"target": "ESNext",
"lib": ["ES2021", "dom"],
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"isolatedModules": true,
"noEmit": true
},
"include": ["./**/*"],
"exclude": ["./_generated"]
}
{
/* This TypeScript project config describes the environment that
* Convex functions run in and is used to typecheck them.
* You can modify it, but some settings required to use Convex.
*/
"compilerOptions": {
/* Extend the base config at the root of the project to avoid double maintenance */
"extends": "../tsconfig.json",

/* These compiler options are required by Convex */
"target": "ESNext",
"lib": ["ES2021", "dom"],
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"isolatedModules": true,
"noEmit": true
},
"include": ["./**/*"],
"exclude": ["./_generated"]
}
17 replies