Skip to content

config

All configurations are contained within the ISupabaseProperties class.

DANGER

To ensure that the project's API key remains consistent every time, the public and private keys are hard-coded here. In a production environment, you must configure your own keys and ensure they are never leaked.

java

@ConfigurationProperties(prefix = "isupabase")
@Configuration
@Data
public class ISupabaseProperties {

    // Maximum number of rows returned
    private Long maxRows = 986L;

    // JWT encode private key using RSA
    private String authPrivateKey = """
            -----BEGIN PRIVATE KEY-----
            YOUR KEY
             -----END PRIVATE KEY-----
            """;
    // JWT encode public key using RSA
    private String authPublicKey = """
            -----BEGIN PUBLIC KEY-----
            YOUR KEY
            -----END PUBLIC KEY-----
            """;

    // JWT expiration time in seconds
    private Long jwtExp = 3600L;
    // Minimum length of passwords

    private Long passwordMinLength = 6L;

    // Required characters for passwords
    private String passwordRequiredCharacters = "";
    // Site URL used in auth callback
    private String siteUrl = "http://localhost:8080";

    // Expiry time in minutes for one-time tokens
    private Long oneTimeExpiredMinutes = 5L;
    // Allowed redirect URLs; localhost is always allowed

    private List<String> redirectUrls = List.of();
    // Configuration for authRequest's providers
    private Map<String, AuthConfig> authProviders = Map.of();

    // Storage update signed JWT expiration time in seconds
    private Long storageUpdateSignedJwtExp = 7200L;

}