microfeed customize: add a env variable in the cloudflare/github setting

microfeed customize: add a env variable in the cloudflare/github setting

·

To add this new env variable SECRET_KEY , the following should be modified as follows:

1, add this SECRET_KEY in the github ( Actions secrets · dongzhisub/microfeed (github.com)) by new Repository secrets.

2, in the generate_vars_toml.sh, to add

SECRET_KEY = "$SECRET_KEY"

3, in the sync_project_config.js file, the {name: 'SECRET_KEY', encrypted: true, required: true} line is added as follows:

const ALLOWED_VARS = [
  {name: 'CLOUDFLARE_ACCOUNT_ID', encrypted: true, required: true},
  {name: 'CLOUDFLARE_PROJECT_NAME', encrypted: true, required: true},
  {name: 'CLOUDFLARE_API_TOKEN', encrypted: true, required: true},
  {name: 'DEPLOYMENT_ENVIRONMENT', encrypted: false, required: false},


  {name: 'R2_ACCESS_KEY_ID', encrypted: true, required: true},
  {name: 'R2_SECRET_ACCESS_KEY', encrypted: true, required: true},
  {name: 'R2_PUBLIC_BUCKET', encrypted: true, required: false},
  {name: 'R2_ENDPOINT', encrypted: true, required: true},
  {name: 'R2_REGION', encrypted: true, required: true},
  {name: 'SECRET_KEY', encrypted: true, required: true},


  {name: 'D1_DATABASE_NAME', encrypted: true, required: false},


  {name: 'NODE_VERSION', encrypted: false, required: false},  // Cloudflare Pages CI needs this to use the right Node version.
  {name: 'MICROFEED_VERSION', encrypted: false, required: false},
];

4, fianlly, this variable can be used in the js as follows: ( add env in the function parameters and use it as `${env.SECRET_KEY}`; )

export async function onRequestPost({ request,env }) {
  const formData = await request.formData();
  const password = formData.get('password');
  const redirectTo = formData.get('redirectTo') || '/admin';
  //const crypto = require('crypto');


   // Access the secret key from environment variables
  const secretKey = `${env.SECRET_KEY}`;

5, modify .dev.vars file to add the SECRET_KEY

6, modify .github/workflow/deploy.yml file to add this variable also.

 SECRET_KEY: ${{ secrets.SECRET_KEY }}