How to send custom data (e.g., site URL or user ID) with FastSpring webhook?

I’m integrating FastSpring with my WordPress plugin, and I’m using a webhook like this: https://example.com/wp-json/v1/webhook

Whenever a payment is completed in FastSpring, a webhook is triggered — for example, to example.com/wp-json/v1/webhook. This webhook can be called from anywhere, and I can use the data as needed.

Is there any way to insert custom data into this webhook — like siteURL or userID?

For instance, in the plugin code provided, can I somehow get the URL of the site where the plugin is installed, or the current user’s ID, from within the webhook handler?

<?php
/**
 * Plugin Name: Order Info
 * Description: Handle FastSpring payment.
 * Version: 1.0
 * Author: test
 */

if (!defined('ABSPATH')) exit;

/**
 * Admin Menu Page
 */
add_action('admin_menu', function () {
    add_menu_page(
        'Payment Manager',
        'Payment',
        'manage_options',
        'employee-payment-manager',
        'employee_payment_manager_page',
        'dashicons-admin-users',
        6
    );
});

/**
 * Admin Page Callback
 */
function employee_payment_manager_page() {
    ob_start();
    ?>
    <script
        id="fsc-api"
        src="https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.9.0/fastspring-builder.min.js"
        type="text/javascript"
        data-popup-webhook-received="dataPopupWebhookReceived"
        data-storefront="bwdplugins.test.onfastspring.com/popup-bwdplugins">
    </script>

    <div class="wrap">
        <h1>Payment Manager</h1>
        <p>
            <button onclick="addVariationAndCheckout('pcm-monthly')" class="wpcv-price-btn">
                Pay Monthly per User
            </button>
        </p>
    </div>

    <script>
        function dataPopupWebhookReceived(data) {
            console.log("Webhook received:", data);
        }

        function addVariationAndCheckout(variation) {
            fastspring.builder.reset();

            switch (variation) {
                case 'pcm-monthly':
                    fastspring.builder.add('pcm-monthly');
                    break;
                default:
                    break;
            }
            
            fastspring.builder.checkout();
        }
    </script>
    <?php
    echo ob_get_clean();
}

Serviceworker registration

We are trying to register a service worker in a domain a.abcorp.com. The site architecture is such a way that only the HTML loads from a.abcorp.com. All the other JS files and CSS files are loaded from b.abcorp.com. To optimize the performance, we want to prefetch some of the files from b.abcorp.com to improve page rendering time.

The problem I am facing is, cross-domain registration is not allowed for service workers. As we have a strict policy to load JS files from CDN, I am not able to load the service worker from b.abcorp.com

The second problem is, even if I somehow loaded the file from a.abcorp.com/xx/yy/zz path, I am still not able to intercept the calls to prefetch the files, as I have scope only for /xx/yy/zz

If I have to change the scope, I am getting an error that I cannot register the service worker in the root domain, unless the server side sends a header saying service-worker allowed.

For me to introduce new header, I will have to go to our IAM gateway and make changes.

If someone can help here in this multifold problem , would greatly appreciate.

Interaction_required: AADSTS161 Application requested user session which does not exist. Trace ID: xxx-xxx-x Correlation IDI xxxx-xxxx-xxxx-xxxxx

I’m using Azure AD authentication in a React.js app with MSAL.js (@azure/msal-browser). I’m encountering the following error intermittently (i.e., not every time):

Interaction_required: AADSTS1600231 Application requested user session which does not exist.  Trace ID: xxxx-xxxx-xxxx-xxxxx Correlation IDI xxxx-xxxx-xxxx-xxxxx Timestamp!

authconfig.js

import { LogLevel } from '@azure/msal-browser';

export const msalConfig = {
    auth: {
        clientId: process.env.AD_AUTH_CLIENT_ID,
        authority: 'https://login.microsoftonline.com/xxxx-xxxx-xxxx-xxxx/v2',
        redirectUri: '/',
        postLogoutRedirectUri: '/',
        navigateToLoginRequestUrl: false,
    },
    cache: {
        cacheLocation: 'localStorage',
        storeAuthStateInCookie: false,
    },
};

export const loginRequest = {
    scopes: [`${process.env.AD_AUTH_CLIENT_ID}/.default`],
};

export const graphConfig = {
    graphMeEndpoint: 'https://graph.microsoft.com/v1.0/me',
};

routes.tsx

export const msalInstance = new PublicClientApplication(msalConfig);
const accounts = msalInstance.getAllAccounts();
if (accounts.length > 0) {
    msalInstance.setActiveAccount(accounts[0]);
}

msalInstance.addEventCallback((event: EventMessage) => {
    if (event.eventType === EventType.LOGIN_SUCCESS && event.payload) {
        const payload = event.payload as AuthenticationResult;
        const account = payload.account;
        msalInstance.setActiveAccount(account);
    }
});

export const router = createBrowserRouter([
    {
        path: '/',
        element: <App pca={msalInstance} />,
        children: [myroutes],
    },
]);

Incremental build in Rollup 4

We have quite a big project with about 35k files, and many entries.
When we try to upgrade from v3 (3.28) to v4 (4.41) I get the following observations:

Initial build time got better for ~25% (200s => 150s)
The startup got faster for a few seconds as well.
But I get the issue with the rebuild when it runs.

I starts taking 30-40s instead of 5-10s earlier.
It feels like there are some issues with the incremental build or something like that.

Is there something that made things work differently ?
Probably we have tune our plugins/configs/whatever

Any help is appreciated. Thank you!

How to make stockfish play weaker using javascript

I am trying to make a chess game . I am using stockfish to play a game with bot. Its working fine .i am using this option along with depth 1 to make stockfish weaker

stockfish.postMessage("setoption name Skill Level value 1);
  stockfish.postMessage("setoption name Skill Level Maximum Error value 250);
  stockfish.postMessage("setoption name Skill Level Probability value 100); 

But when i use above option i get this

No such option: Skill Level Maximum Error
No such option: Skill Level Probability

Maybe i am using wrong javascript file. Please tell me which github stockfish resposrity and which javascript file i should use to play it weaker.currently i am using this github release

https://github.com/lichess-org/stockfish.js/releases/tag/ddugovic-250718

But it always play strong . I want to make some levels to play. But changing depth option doesn’t do much .i want to use it on mobile browser . I tried other stockfish js resposrity too but same problem.please help me

How to upload and display blob image as an object url?

Using Node Js Multer I am uploading an image to the database as a blob. This happens from javascript ajax xmlhttp request to express js endpoint.

index.html uploading image request

var data, xhr;
    data = new FormData();
    data.append('imageProfile',image);
    xhr = new XMLHttpRequest();

    xhr.open('POST', 'http://localhost:3000/upload', true);
    xhr.onreadystatechange = function (response) {
      //  document.getElementById("result").innerHTML = xhr.responseText
    };
    xhr.send(data);

express js image database upload

router.post('/upload', upload.single('imageProfile'),function(req,res){
const imageProfile = req.file;
var image=imageProfile;
var sql='Insert into Uploads (id,image) VALUES("2",cast("'+image+'" AS BINARY));';
connection.query(sql, function (err, data) {
  if (err) {
      // some error occured
      console.log("database error-----------"+err);
  } else {
      // successfully inserted into db
      console.log("database insert sucessfull-----------");
    }
  });
});

so according to my knowledge image gets uploaded as blob to mysql database successfully.

now the problem is fetching and viewing the image from database.

express js fetch image from database

router.get('/getimage',function(req,res){

 var sql = 'SELECT image FROM Uploads';

connection.query(sql, function (err, data) {
  if (err) {
      // some error occured
      console.log("database error-----------"+err);
  } else {
      // successfully inserted into db
      console.log("database select sucessfull-----------"+data.length);
       res.json({'image':data[0].image});
  }

  });
 });

index.html show database from express js endpoint as a object url

$.get("http://localhost:3000/getimage",function(data,status){

        console.log("data---"+JSON.stringify(data));
        let url = URL.createObjectURL( new Blob([data["image"]], { type: 'image/jpeg' 
   }))
        imgtag.src=url;

    });

json response of image blob

{"image":{"type":"Buffer","data": 
[91,111,98,106,101,99,116,32,79,98,106,101,99,116,93]}}

This image is not getting displayed as a ObjectURL in index.html. Anything wrong that is done here?

The issue i am facing is label and node overlap, especially when i make a loopback (self-connection) to the same node

I am using jsPlumb v2.1.2 (Community Edition) along with farahey.js for flow layout in my project.
Since the project is already live, I cannot change the version.

The issue I am facing is:
When I create a loopback connection (connect a node to itself), the labels and nodes overlap.
I want to make sure that there is no overlap between labels and nodes, especially in self-connections.
I need the fix The self-connection should be displayed clearly without any clutter.

Thanks in advance.Self connection nodes
Labels overlap issue

WasmBackendModuleThreadedSimd Error When Using Webpack-Bundled SDK with TensorFlow.js and @vladmandic/human

I’ve created a JavaScript SDK that uses the @vladmandic/human library and TensorFlow.js for ML operations. I bundle the SDK using Webpack v5.94.

Everything works fine when I use the source code directly in my Next.js app. However, when I install the SDK from npm (i.e., the bundled output), I encounter the following error at runtime:

Uncaught ReferenceError: n is not defined at WasmBackendModuleThreadedSimd at self.onmessage

I’m using only one WASM file from MediaPipe via a CDN link, and my Webpack config looks like this:

import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export default {
  experiments: {
    outputModule: true
  },
  entry: './abc.js',
  output: {
    filename: 'abc.js',
    path: path.resolve(__dirname, 'dist'),
    library: {
      type: 'module'
    },
  },
  module: {
    rules: [
      {
        test: /.jsx?$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react'],
          },
        },
      },
      {
        test: /.css$/,
        use: [
          'style-loader',
          'css-loader'
        ],
      },
    ],
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },
  mode: 'production',
};

What I’ve tried:

  • Using only source code directly – works fine.

  • Using the dist/abc.js bundle from npm – throws the error.

  • Ensured the WASM file is correctly fetched from the CDN.

How can I bundle my SDK with @vladmandic/human and tensorflow-js with webpack so that it can work properly? Thanks in advance!

String.prototype.replaceAll() replace twice

  parseAgentFunction(prompt: any, mindernode: any): string {
    prompt = '这个是啥$querySeedTextCaseFromDb()'
    if (prompt.includes("$querySeedTextCaseFromDb")) {
      const regex = /$querySeedTextCaseFromDb((.*?))/g;
      const checkedNodesForQuerySeedTextCaseFromDb = '$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)'
      prompt = prompt.replaceAll(
        regex,
        checkedNodesForQuerySeedTextCaseFromDb
      );
    }
    return prompt;
  }

The result is '这个是啥$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)', which is supposed to be '这个是啥$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)'

When I changed replaceAll to replace, result becomes to '这个是啥$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)', which is suppoesd to be right.

function parseAgentFunction(prompt, mindernode) {
  prompt = '这个是啥$querySeedTextCaseFromDb()'
  if (prompt.includes("$querySeedTextCaseFromDb")) {
    const regex = /$querySeedTextCaseFromDb((.*?))/g;
    const checkedNodesForQuerySeedTextCaseFromDb = '$querySeedTextCaseFromDb(测试老的关联方式有没有坏,background占位这种)'
    prompt = prompt.replaceAll(
      regex,
      checkedNodesForQuerySeedTextCaseFromDb
    );
  }
  return prompt;
}

console.log(parseAgentFunction());

Why are fallthrough attributes applied to both the root element and the one you specify with v-bind=”$attrs”?

I’ve been trying to use Vue’s Fallthrough Attributes to pass an event listener down to a button with v-bind="$attrs". After hours of debugging I found out that the event listener is registered twice: on the root element and on the with v-bind. Here’s the minimal repro:

<script setup lang="ts">
import Comp from './Comp.vue'
</script>

<template>
  <Comp @click="console.log('click')" />
</template>
<script setup lang="ts"></script>

<template>
  <div style="padding:20px;">
    triggers event once
    <button v-bind="$attrs">triggers event twice</button>
  </div>
</template>

I’ve also made a more in-depth demo on Vue Playground.

Apparently, Vue passes down the Fallthrough Attributes both to the root element of the component and the one specified with v-bind="$attrs". So, if you pass an id, tailwind class, anything – it will be duplicated.

Is there any reason for this behavior? From my couple dozen hours of experience with Vue it seems like a bug or a really annoying feature.

It works exactly like I’d expect with multi-root templates, so why not single-root?

Laravel Eloquent fails to insert Unicode (emoji) into NVARCHAR column on SQL Server – only works with query builder

I’m working on a Laravel 8 project that connects to Microsoft SQL Server 2017 (running on Windows Server 2012 R2) using PHP 7.4.9 and the sqlsrv/pdo_sqlsrv drivers. My goal is to insert Unicode characters (e.g., emoji like ✅) into a column defined as NVARCHAR.

When I insert using Laravel’s Query Builder:

DB::table('cabang')->insert(['kodecabang' => '✅']);

The Unicode characters are inserted correctly into the NVARCHAR column.

When I use Eloquent:

$cabang = new AppModelsCabang();
$cabang->kodecabang = '✅';
$cabang->save();

The character becomes corrupted (?, , etc), or I sometimes get:

Malformed UTF-8 characters, possibly incorrectly encoded

What I’ve Confirmed & Tried

  • The target column is NVARCHAR
  • Laravel DB config uses ‘charset’ => ‘utf8’
  • Data is UTF-8 valid (verified via mb_check_encoding, iconv, etc.)
  • Tried filtering and re-encoding strings before save (via Eloquent trait, middleware, model event saving())
  • Using Laravel 8 Eloquent models and default connection
  • Files are saved as UTF-8 without BOM
  • I tried forcing conversions like:
iconv('UTF-8', 'UTF-8//IGNORE', $value)

Still no luck — the saved character is not the emoji, but broken.

  • Inserting N’✅’ directly in SQL Server (SSMS) works fine
  • Using raw DB::statement with N'...' also works
  • I noticed that neither my local nor server environment shows ExtensionVer when running php -i | find "sqlsrv".
    However, Unicode insert via Eloquent works on local, but fails on the server.
    This suggests the issue may not solely be the driver version, but perhaps the environment, OS-level encoding support, or how the driver is installed/configured on the server.

My Questions

  1. Does Laravel Eloquent or the PDO SQLSRV driver support Unicode binding correctly for NVARCHAR?
  2. Is it possible to make Eloquent insert Unicode data with the N’…’ prefix for NVARCHAR?
  3. Is the root cause likely my pdo_sqlsrv driver being outdated or not from Microsoft?
  4. Is switching to the official Microsoft SQLSRV drivers the only reliable solution to store Unicode via Eloquent ORM?

Notes

  • I can’t rewrite the app to use DB::table() everywhere — it’s large and uses models extensively.
  • I’m trying to find a way to store emoji via $model->save() reliably.
  • Any ideas to force or simulate the Unicode-aware binding via Eloquent would be appreciated.

Thanks in advance for any insights or workaround!

dynamically change which anchor (*composer-install or *composer-update) is used based on $PHP_VERSION in gitlab CI

Here, I have added a snippet of .gitlab-ci.yml, which is performing unit tests for different PHP versions.

So, for the unit test, it is installing the composer dependencies based on different PHP versions.

Now, I want to install composer (*composer-install) when PHP_VERSION = 7.4 otherwise composer update (*composer-update)

I am expecting a solution on how to add anchors conditionally. If not, do we have any alternative method except the one mentioned?

Existing configuration:

.install-composer-script: &install-composer-script
  - composer install
  - composer bin all install

.update-composer-script: &update-composer-script
  - composer update

.composer-install: &composer-install
  before_script:
    - echo 'APP_ENV=gitlab-ci' >> .env
    - ssh-keygen -t rsa -f ./data/id_rsa -q -P ""
    - *install-composer-script
    - composer build-phar
  <<: *unit-tests

.composer-update: &composer-update
  before_script:
    - echo 'APP_ENV=gitlab-ci' >> .env
    - ssh-keygen -t rsa -f ./data/id_rsa -q -P ""
    - *update-composer-script
    - *install-composer-script
    - composer build-phar
  <<: *unit-tests

unit-tests-php74-84:
  image: docker-php-image:php-${PHP_VERSION}
  allow_failure: false
  needs:
    - composer
  before_script:
    - echo 'APP_ENV=gitlab-ci' >> .env
    - ssh-keygen -t rsa -f ./data/id_rsa -q -P ""
    - |
        if [ "$PHP_VERSION" != "7.4" ]; then
          composer update $COMPOSER_FLAGS
        fi;
    - *install-composer-script
    - composer build-phar
  <<: *unit-tests
  parallel:
    matrix:
      - PHP_VERSION: "7.4"
      - PHP_VERSION: "8.0"
      - PHP_VERSION: "8.1"
      - PHP_VERSION: "8.2"
      - PHP_VERSION: "8.3"
      - PHP_VERSION: "8.4"

**Is Working:
before_script:
    - echo 'APP_ENV=gitlab-ci' >> .env
    - ssh-keygen -t rsa -f ./data/id_rsa -q -P ""
    - |
        if [ "$PHP_VERSION" != "7.4" ]; then
          composer update $COMPOSER_FLAGS
        fi;
    - *install-composer-script
    - composer build-phar

**But, I want something like:

unit-tests-php74-84:
  image: docker-php-image:php-${PHP_VERSION}
  allow_failure: false
  needs:
    - composer
  before_script:
    - if $PHP_VERSION" != "7.4" then *composer-install
    - else *composer-update
  <<: *unit-tests
  parallel:
    matrix:
      - PHP_VERSION: "7.4"
      - PHP_VERSION: "8.0"
      - PHP_VERSION: "8.1"
      - PHP_VERSION: "8.2"
      - PHP_VERSION: "8.3"
      - PHP_VERSION: "8.4"

Flutter HTTP Request Error: ClientException with SocketException (Connection timed out) to PHP API on Local Server

When I try to send a POST request to my login API (login.php), I get the following error in Flutter:
ClientException with SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = 192.168.51.31, port = 43832, uri=http://192.168.51.31/stray-dog//login.php

My Setup:

Flutter frontend

PHP API (login.php) hosted on local server

MySQL database

Local network Wi-Fi

API URL used: http://192.168.51.31/stray-dog//login.php

What I’ve Tried:

Confirmed that the server is running and accessible via browser from the development machine.

Verified device and server are on the same network.

Checked firewall and port blocking settings.

Tested the API using Postman from the development machine (it works).

Used emulator and real device for testing; same error occurs.

Any help or suggestions are appreciated!

AI and ML implement in Laravel framework Getting Error Getting AI service failed [closed]

Laravel for AI and ML applications.

Installed this one:

composer create-project –prefer-dist laravel/laravel ai-ml-app

I have Used bellow code but its also not working.

<?php
namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesHttp;

class AiController extends Controller
{
    public function sentiment(Request $req)
    {
        $res = Http::post(config('ai.url') . '/analyze', ['text' => $req->message]);
        if ($res->failed()) {
            return response()->json(['error' => 'AI service failed'], 500);
        }
        return response()->json([
            'message' => $req->message,
            'ai' => $res->json()
        ]);
    }
}

But its not working Please provide me all steps those are I need to follow for Laravel framework.

I follow these steps also https://www.bacancytechnology.com/blog/laravel-with-ai-ml but its not working

phpMyAdmin OIDC Authentication with OAuth2-Proxy causing redirect loop between login and SignonURL page

I’m currently running phpMyAdmin and OAuth2-Proxy in my kubernetes cluster. OIDC authentication is working just fine, I’ve verified that PMA_USERNAME is being set properly, and I’m being authenticated by my IDP. However, I’m getting a too many redirect error, it seems like I’m stuck in a loop between /database/ and my /database/scripts/signon.php. As you can see below, I’ve tried everything so please excuse any unnecessary additions. Thanks in advance!

phpmyadmin-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: phpmyadmin
  labels:
    app: phpmyadmin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: phpmyadmin
  template:
    metadata:
      labels:
        app: phpmyadmin
    spec:
      containers:
        - name: phpmyadmin
          # image: phpmyadmin/phpmyadmin:latest
          image: phpmyadmin/phpmyadmin:5.2.1
          ports:
            - containerPort: 80
          env:
            - name: PMA_HOST
              value: "<DATABASE DNS>"
            - name: PMA_PORT
              value: "<DB PORT>"
            - name: PMA_ABSOLUTE_URI
              value: "https://<My Database URL>/database/"
            - name: PMA_ARBITRARY
              value: "0"
          lifecycle:
            postStart:
              exec:
                command:
                  - sh
                  - -c
                  - |
                    set -x  # Enable verbose output

                    # Disable username on login screen                    
                    sed -i 's/name="pma_username"/name="pma_username" disabled="disabled"/g' "/var/www/html/templates/login/form.twig"


                    # Create the directories
                    mkdir -p /etc/phpmyadmin/conf.d
                    mkdir -p /var/www/html/scripts

                    # Create the new config file
                    cat <<EOF > /etc/phpmyadmin/conf.d/config.signon.inc.php
                    <?php
                    for ($i = 1; isset($hosts[$i - 1]); $i++) {
                      $cfg['Servers'][$i]['auth_type'] = 'signon';
                      $cfg['Servers'][$i]['SignonURL'] = 'scripts/signon.php';
                      $cfg['Servers'][$i]['cookie_name'] = 'phpMyAdmin_https';
                    }
                    ?>
                    EOF

                    # Create the signon.php script
                    cat <<EOF > /var/www/html/scripts/signon.php
                    <?php
                    session_start();

                    // Check if the X-Auth-Request-Email header is present
                    if (isset($_SERVER['HTTP_X_AUTH_REQUEST_EMAIL'])) {
                      $username = $_SERVER['HTTP_X_AUTH_REQUEST_EMAIL'];

                      // Set the Session Variables
                      $_SESSION['pma_username'] = $username;

                      // Redirect to phpMyAdmin
                      error_log("Complete  _SERVER array: " . print_r($_SERVER, true));
                      header("Location: /database/");
                      exit;
                    } else {
                      // Handle the case where the header is missing
                      error_log("Complete  _SERVER array: " . print_r($_SERVER, true));
                      die("Access denied: Not authenticated by OAuth2-Proxy");
                    }
                    ?>
                    EOF
                    
                    # Change ownership to www-www-data
                    chown -R www-data:www-data /etc/phpmyadmin/conf.d
                    chown -R www-data:www-data /var/www/html/scripts

phpmyadmin-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: phpmyadmin-ingress
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
    nginx.ingress.kubernetes.io/auth-url: http://oauth2-proxy.ingress-nginx.svc.cluster.local/oauth2/auth
    nginx.ingress.kubernetes.io/auth-signin: https://<My Database URL>/oauth2/start?rd=https://$host$request_uri
    nginx.ingress.kubernetes.io/auth-response-headers: "X-Auth-Request-Email"

spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - <My Database URL>
      secretName: <TLS SECRET>
  rules:
    - host: <My Database URL>
      http:
        paths:
          - path: /database(/|$)(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: phpmyadmin-service
                port:
                  number: 80

oidc-values.yaml

config:
  existingSecret: oauth2-secret # includes client-id, client-secret, and cookie-secret

  configFile: |
    provider = "oidc"
    set_xauthrequest = true
    oidc_issuer_url = "https://<IDP URL>/oidc/<My Database URL>"
    email_domains = ["*"]
    cookie_secure = true
    upstreams = ["http://phpmyadmin.default.svc.cluster.local"]
    redirect_url = "https://<My Database URL>/oauth2/callback"
    #scope = "openid email profile"
    scope = "openid"
    profile_url = "https://<IDP URL>/oidc/<My Database URL>/userinfo"
    user_id_claim = "mail"
    pass_access_token = true
    pass_authorization_header = true
    pass_user_headers = true
    set_authorization_header = true
    cookie_domains = "<My Database URL>"
    #cookie_name = "_oauth2_proxy"
    cookie_refresh = "2m"
    cookie_expire = "24h"
    cookie_csrf_per_request= true
    cookie_csrf_expire = "5m"

extraArgs:
  - --cookie-secure=true
  - --cookie-samesite=lax
  - --whitelist-domain=<My Database URL>
  - --skip-provider-button
  - --user-id-claim=mail

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
  hosts:
    - <My Database URL>
  path: /oauth2