anchor.diff:      AUTH_ANONYMOUS_ENABLED = boolToString cfg.auth.anonymous.enable;
       AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
       AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
  +    AUTH_GOOGLE_ENABLED = boolToString cfg.auth.google.enable;
  +    AUTH_GOOGLE_ALLOW_SIGN_UP = boolToString cfg.auth.google.allowSignUp;
  +    AUTH_GOOGLE_CLIENT_ID = cfg.auth.google.clientId;
   
       ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
   
  
positive.code:       };
      };
  
      auth.anonymous = {
        enable = mkOption {
          description = "Whether to allow anonymous access.";
          default = false;
          type = types.bool;
        };
        org_name = mkOption {
          description = "Which organization to allow anonymous access to.";
          default = "Main Org.";
          type = types.str;
        };
        org_role = mkOption {
          description = "Which role anonymous users have in the organization.";
          default = "Viewer";
          type = types.str;
        };
  
      };
  
      analytics.reporting = {
  
negative.code:         QT_QPA_PLATFORM = "offscreen";
        } // mapAttrs' (n: v: nameValuePair "GF_${n}" (toString v)) envOptions;
        script = ''
          ${optionalString (cfg.auth.google.clientSecretFile != null) ''
            export GF_AUTH_GOOGLE_CLIENT_SECRET="$(cat ${escapeShellArg cfg.auth.google.clientSecretFile})"
          ''}
          ${optionalString (cfg.database.passwordFile != null) ''
            export GF_DATABASE_PASSWORD="$(cat ${escapeShellArg cfg.database.passwordFile})"
          ''}
  