codebar-ag/laravel-microsoft-azure

Thin Azure and Microsoft 365 REST connector for Laravel (ARM, Key Vault, Graph, Kudu)

Maintainers

Package info

github.com/codebar-ag/laravel-microsoft-azure

pkg:composer/codebar-ag/laravel-microsoft-azure

Transparency log

Statistics

Installs: 597

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.5.1 2026-07-03 18:37 UTC

This package is auto-updated.

Last update: 2026-07-03 18:54:47 UTC


README

Tests PHPStan Code Style Composer Audit

Thin Azure and Microsoft 365 REST connector for Laravel — Saloon transport only, no business logic.

Why

One Azure facade with fluent, typed Resource gateways over 13 Azure/Microsoft 365 REST surfaces — ARM (incl. Logic Apps, API Management), Azure AI Foundry (control + data plane, dated and v1 OpenAI surfaces), Azure Functions (ARM + runtime), Key Vault, Microsoft Graph, Log Analytics (KQL), Storage Queue (data plane), and Kudu. No official microsoft/* SDK dependency — every call is a hand-written Saloon request against the documented REST API. It does not do orchestration: provisioning sequences, retry policy beyond Saloon's built-in retry, and idempotency across multiple calls belong in the consuming app. See Limitations for the full list of what's deliberately out of scope.

Requirements

Supported
PHP 8.4.* or 8.5.*
Laravel ^13.0

No legacy PHP or Laravel support. Details: docs/installation.md.

Install

composer require codebar-ag/laravel-microsoft-azure
php artisan vendor:publish --tag=laravel-microsoft-azure-config

Service provider and Azure facade register automatically via Laravel package auto-discovery. Full steps and Azure prerequisites: docs/installation.md.

Configuration

MICROSOFT_AZURE_TENANT_ID=
MICROSOFT_AZURE_CLIENT_ID=
MICROSOFT_AZURE_CLIENT_SECRET=
MICROSOFT_AZURE_SUBSCRIPTION_ID=

That's the minimum. The published config also supports multi-tenant connections, retry/rate-limit policy, cache driver, and debug capture — full reference (and a documented config-key drift you should know about): docs/configuration.md.

Quick start

use CodebarAg\MicrosoftAzure\Facades\Azure;

Azure::instance()->resourceGroups($subscriptionId)->list();
Azure::instance()->vault('my-keyvault')->secrets()->get('my-secret');

Runnable end-to-end walkthrough: docs/quick-start.md.

Usage

One facade, chained fluent gateways per Azure service — every call returns a typed DTO or Collection, never a raw array:

Azure::instance()->vault('my-kv')->secrets()->set('webhook-token', $token);
Azure::instance()->foundry('my-aif', 'my-prj')->responses()->create(['model' => 'gpt-5-mini', 'input' => 'Hello']);

Full surface catalog, one page per group:

Class-level reference: ENDPOINTS.md (curated catalog), docs/api-reference.md and docs/inventory-parity.md (auto-generated — regenerate with composer docs:api / composer inventory:parity after changing Requests, DTOs, or Resources).

Advanced usage

Multi-tenant connections, long-running-operation polling, pagination, retry and rate-limit tuning: docs/advanced.md.

Testing

Contributor-facing test suite, Saloon fixtures, and live-integration setup: docs/testing.md.

Troubleshooting

Error → cause → fix table for every exception this package throws: docs/troubleshooting.md.

Limitations

No business logic/orchestration, no DB migrations, no service health checks, no official SDK — full list: docs/limitations.md.

Contributing

composer test      # offline unit + core tests
composer analyse    # PHPStan level 10
composer format      # Pint

If your change touches Requests/, Data/, or Resources/, regenerate the generated docs before opening a PR — CI checks both are in sync:

composer docs:api
composer inventory:parity

More detail on the test suite (fixtures, live integration tiers): docs/testing.md.

Support, license