Download the PHP package concept7/kite-php-sdk without Composer

On this page you can find all versions of the php package concept7/kite-php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package kite-php-sdk

Kite PHP SDK

Latest Version on Packagist Total Downloads

Framework-agnostic PHP client for Kite monitoring. Collects project metadata (PHP, Node and database versions, installed packages), reports it to the Kite API, and scans those packages for known security advisories.

This is the core SDK. For a framework integration, use concept7/laravel-kite or concept7/wordpress-kite instead — both build on this package.

Requirements

Installation

Configuration

Set the KITE_TOKEN environment variable with the token generated from the Kite Dashboard.

The API base URL defaults to https://kite-monitor.com. Override it for development:

A config without a token is invalid, and report() and checkAdvisories() both throw an Exception rather than sending anything.

Usage

Reporting

report() returns a ProjectReportDto. It runs every registered action through a pipeline, drops the records whose value came back empty, and posts the result.

Kite::make() registers these actions by default:

Adding extra actions

Add your own actions alongside the defaults — see Writing a custom action for what one looks like:

Or multiple at once:

Replacing default actions

Use setActions() to completely override the defaults:

Project info collector

Packages and project details are only sent when a ProjectInfoCollectorInterface implementation is registered. Its collect() returns an array that becomes the project_info payload; a packages key in it is what gets scanned and filtered.

Package collection

Helpers to collect installed packages with ecosystem tagging:

Each accepts an optional base path and defaults to getcwd(). Every entry has this shape:

Package filtering

Before sending, report() fetches the project's config from the Kite API. Unless the project is set to share all packages, the reported list is filtered down to the packages Kite is configured to monitor. The advisory scan always runs against the full list, so vulnerable transitive packages still surface.

If that config call fails, nothing is filtered out of the scan and no packages are reported.

Security advisories

report() scans the collected packages and includes the findings in the payload. A failing scan is swallowed — it never blocks the report.

To scan without sending a full report — for a scheduled re-scan between reports, say:

checkAdvisories() returns early when no collector is registered or the collector reports no packages.

The scanners can also be used directly:

Each picks out the packages belonging to its own ecosystem and ignores the rest:

Scanner Ecosystem Source
ComposerAdvisories composer Packagist advisories API, version-matched with composer/semver
NpmAdvisories npm OSV.dev batch query API

Both return advisories in the same shape:

severity is normalised through the Severity enum (critical, high, medium, low); OSV's moderate maps to medium, and anything unrecognised becomes null.

Writing a custom action

Implement ActionInterface. Each action receives a Collection of metadata records and passes it along via $next:

Each record is an array with key and value. Records with a null or empty value are filtered out before the report is sent, so an action that cannot determine its value can simply push nothing — or push null and let it be dropped.

Built-in actions

Action Meta key Source
GetPhpVersionAction php_version phpversion()
GetNodeVersionAction node_version node --version, falling back to .nvmrc
GetMysqlVersionAction database_version mysql --version, prefixed mysql_ or mariadb_

Ecosystems

The Ecosystem enum tags packages by source:

Case Value
Ecosystem::Composer composer
Ecosystem::Npm npm
Ecosystem::Wordpress wordpress

Testing

License

MIT


All versions of kite-php-sdk with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
composer/composer Version ^2.9
illuminate/pipeline Version ^8.0||^9.0||^10.0||^11.0||^12.0||^13.0
illuminate/support Version ^8.0||^9.0||^10.0||^11.0||^12.0||^13.0
saloonphp/saloon Version ^4.0
symfony/process Version ^5.4||^6.4||^7.0||^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package concept7/kite-php-sdk contains the following files

Loading the files please wait ...