PHPackages                             survos/quickbase-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. survos/quickbase-bundle

ActiveSymfony-bundle[API Development](/categories/api)

survos/quickbase-bundle
=======================

Symfony integration for the Quickbase JSON REST API, with a scoped client and record upserts.

2.24.35(today)017↑2547.1%MITPHPPHP ^8.5

Since Aug 25Pushed todayCompare

[ Source](https://github.com/survos/quickbase-bundle)[ Packagist](https://packagist.org/packages/survos/quickbase-bundle)[ GitHub Sponsors](https://github.com/kbond)[ RSS](/packages/survos-quickbase-bundle/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (10)Versions (4)Used By (0)

survos/quickbase-bundle
=======================

[](#survosquickbase-bundle)

Symfony 8.1 integration for the [Quickbase JSON REST API](https://developer.quickbase.com/). The first vertical slice is record upsert, intended for publishing completed PriceIt workflow data.

Install
-------

[](#install)

```
composer require survos/quickbase-bundle
```

```
QUICKBASE_REALM=example.quickbase.com
QUICKBASE_API_KEY=your-user-token
```

```
# config/packages/survos_quickbase.yaml
survos_quickbase:
    realm: '%env(QUICKBASE_REALM)%'
    token: '%env(QUICKBASE_API_KEY)%'
    apps:
        lions:
            id: bwa6visdy
            tables:
                inventory:
                    id: bwa6visd6
                    fields:
                        record_id: 3
                        sku: 6
                        name: 15
        rah:
            id: bv4hfi7e8
```

Inject `QuickbaseClientInterface` into the PriceIt workflow completion handler. Records may use Quickbase's native field-value shape or a concise field-id-to-value map:

```
$result = $quickbase->upsertRecords(
    tableId: 'bxxxxxxxx',
    records: [[6 => 'SKU-123', 7 => 19.95, 8 => 'complete']],
    mergeFieldId: 6,
    fieldsToReturn: [3, 6, 7, 8],
);
```

The scoped HTTP client supplies the realm, authorization, content type, user agent, retry policy, and base URI. API failures throw `QuickbaseApiException`, including Quickbase's `qb-api-ray`request identifier when available.

Provider-neutral record access
------------------------------

[](#provider-neutral-record-access)

The bundle also contributes a Quickbase adapter to `survos/record-store-bundle`. Keep credentials and the provider-native catalog in `survos_quickbase`, then map stable application, table, and field names for domain code:

```
survos_record_store:
    connections:
        quickbase:
            driver: quickbase
    applications:
        lions:
            connection: quickbase
            id: bwa6visdy
            tables:
                inventory:
                    id: bwa6visd6
                    fields:
                        sku: 6
                        name: 15
```

Use `RecordStoreRegistry` for portable schema reads, basic record queries, and upserts. Continue to use `QuickbaseClientInterface` for Quickbase query expressions and provider-specific schema work.

Explore an app
--------------

[](#explore-an-app)

```
bin/console quickbase:apps
bin/console quickbase:tables lions
bin/console quickbase:tables APP_ID --json
bin/console quickbase:fields lions.inventory
bin/console quickbase:fields TABLE_ID --permissions --json
bin/console quickbase:relationships lions.inventory
bin/console quickbase:query lions.inventory --select=3,6,15 --top=20
bin/console quickbase:query TABLE_ID --where="{'6'.EX.'SKU-123'}" --json
```

These commands are read-only. They use the same scoped client and credentials as application code.

`QuickbaseClientInterface` also exposes typed methods for record queries and for creating tables, fields, and relationships. Schema mutations are intentionally API-only for now; a future CLI will apply a declarative schema diff rather than issuing unreviewed one-off changes.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance100

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/21b39551f92ed4143772c622f9e571589c5a72c96ab3c53fe67489ce0d83e806?d=identicon)[tacman1123](/maintainers/tacman1123)

---

Top Contributors

[![tacman](https://avatars.githubusercontent.com/u/619585?v=4)](https://github.com/tacman "tacman (4 commits)")

---

Tags

apisymfonyintegrationquickbase

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/survos-quickbase-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/survos-quickbase-bundle/health.svg)](https://phpackages.com/packages/survos-quickbase-bundle)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
