If you’re working with PHP, the official Infisical PHP SDK package is the easiest way to fetch and work with secrets for your application.

Installation

composer require infisical/php-sdk

Getting Started

<?php

use Infisical\SDK\InfisicalSDK;

$sdk = new InfisicalSDK('https://app.infisical.com');

// Authenticate with Infisical
$response = $sdk->auth()->universalAuth()->login(
    "your-machine-identity-client-id",
    "your-machine-identity-client-secret"
);

// List secrets
$params = new \Infisical\SDK\Models\ListSecretsParameters(
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id"
);

$secrets = $sdk->secrets()->list($params);
echo "Fetched secrets: " . count($secrets) . "\n";

Core Methods

The SDK methods are organized into the following high-level categories:
  1. auth: Handles authentication methods.
  2. secrets: Manages CRUD operations for secrets.

Auth

The auth component provides methods for authentication:

Universal Auth

Authenticating
$response = $sdk->auth()->universal_auth()->login(
    "your-machine-identity-client-id",
    "your-machine-identity-client-secret"
);
Parameters:
  • clientId (string): The client ID of your Machine Identity.
  • clientSecret (string): The client secret of your Machine Identity.
We do not recommend hardcoding your Machine Identity Tokens. Setting them as environment variables would be best.

Secrets

This sub-class handles operations related to secrets:

List Secrets

use Infisical\SDK\Models\ListSecretsParameters;

$params = new ListSecretsParameters(
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id",
    tagSlugs: ["tag1", "tag2"], // Optional
    recursive: true, // Optional
    expandSecretReferences: true, // Optional
    attachToProcessEnv: false, // Optional
    skipUniqueValidation: false // Optional
);

$secrets = $sdk->secrets()->list($params);
Parameters:
  • environment (string): The environment in which to list secrets (e.g., “dev”).
  • projectId (string): The ID of your project.
  • secretPath (string, optional): The path to the secrets.
  • tagSlugs (array, optional): Tags to filter secrets.
  • recursive (bool, optional): Whether to list secrets recursively.
  • expandSecretReferences (bool, optional): Whether to expand secret references.
  • attachToProcessEnv (bool, optional): Whether to attach secrets to process environment variables.
  • skipUniqueValidation (bool, optional): Whether to skip unique validation.
Returns:
  • Secret[]: An array of secret objects.

Create Secret

use Infisical\SDK\Models\CreateSecretParameters;

$params = new CreateSecretParameters(
    secretKey: "SECRET_NAME",
    secretValue: "SECRET_VALUE",
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id"
);

$createdSecret = $sdk->secrets()->create($params);
Parameters:
  • secretKey (string): The name of the secret to create.
  • secretValue (string): The value of the secret.
  • environment (string): The environment in which to create the secret.
  • projectId (string): The ID of your project.
  • secretPath (string, optional): The path to the secret.
Returns:
  • Secret: The created secret object.

Get Secret

use Infisical\SDK\Models\GetSecretParameters;

$params = new GetSecretParameters(
    secretKey: "SECRET_NAME",
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id"
);

$secret = $sdk->secrets()->get($params);
Parameters:
  • secretKey (string): The name of the secret to retrieve.
  • environment (string): The environment in which to retrieve the secret.
  • projectId (string): The ID of your project.
  • secretPath (string, optional): The path to the secret.
Returns:
  • Secret: The retrieved secret object.

Update Secret

use Infisical\SDK\Models\UpdateSecretParameters;

$params = new UpdateSecretParameters(
    secretKey: "SECRET_NAME",
    newSecretValue: "UPDATED_SECRET_VALUE",
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id"
);

$updatedSecret = $sdk->secrets()->update($params);
Parameters:
  • secretKey (string): The name of the secret to update.
  • newSecretValue (string): The new value of the secret.
  • environment (string): The environment in which to update the secret.
  • projectId (string): The ID of your project.
  • secretPath (string, optional): The path to the secret.
Returns:
  • Secret: The updated secret object.

Delete Secret

use Infisical\SDK\Models\DeleteSecretParameters;

$params = new DeleteSecretParameters(
    secretKey: "SECRET_NAME",
    environment: "dev",
    secretPath: "/",
    projectId: "your-project-id"
);

$deletedSecret = $sdk->secrets()->delete($params);
Parameters:
  • secretKey (string): The name of the secret to delete.
  • environment (string): The environment in which to delete the secret.
  • projectId (string): The ID of your project.
  • secretPath (string, optional): The path to the secret.
Returns:
  • Secret: The deleted secret object.