31f4670efa
get_merchant_profile_for_product selected the bare MERCHANT_PROFILE_COLS list while JOINing products (which also has an id), so SQLite raised "ambiguous column name: id" on every execution. The function runs on every purchase, so every paid purchase on 0.2.0:52 returned HTTP 500. Replace the JOIN with an equivalent correlated subquery, keeping merchant_profiles the only table in FROM; behavior on NULL/missing merchant_profile_id is unchanged (no row, caller falls back to the default profile). Also from the verification pass: - Add merchant_profile_provider_resolution_queries_round_trip, exercising the previously untested runtime-prepared resolution / CRUD / preference queries. - Repair three test call sites for the new create_invoice / create_subscription params; capture the response body in the paid_purchase status assertion. - Align manifest license to LicenseRef-Keysat-1.0; drop an unused import.
72 lines
2.7 KiB
TypeScript
72 lines
2.7 KiB
TypeScript
// StartOS package manifest. Run through `setupManifest()` from the SDK.
|
|
//
|
|
// NOTE: This service's source code is source-available but not open source.
|
|
// The `license` field takes an SPDX identifier, and the actual license text
|
|
// must live in a file named `LICENSE` at the package root (start-cli bundles
|
|
// it as an ingredient). Since this project ships under a custom license, we
|
|
// use the SPDX `LicenseRef-` prefix per the SPDX spec for non-standard
|
|
// licenses. The `LICENSE` file at the package root is a copy of
|
|
// `../licensing-service/LICENSE`.
|
|
|
|
import { setupManifest } from '@start9labs/start-sdk'
|
|
import { short, long } from './i18n'
|
|
|
|
export const manifest = setupManifest({
|
|
id: 'keysat',
|
|
title: 'Keysat Licensing',
|
|
license: 'LicenseRef-Keysat-1.0',
|
|
packageRepo: 'https://github.com/keysat-xyz/keysat-startos',
|
|
upstreamRepo: 'https://github.com/keysat-xyz/keysat',
|
|
marketingUrl: 'https://keysat.xyz',
|
|
donationUrl: null,
|
|
docsUrls: [
|
|
'https://github.com/keysat-xyz/keysat/blob/main/README.md',
|
|
'https://github.com/keysat-xyz/keysat/blob/main/docs/INTEGRATION.md',
|
|
],
|
|
description: { short, long },
|
|
// A single data volume holds the SQLite database (which in turn holds the
|
|
// server signing key). StartOS encrypts and backs this up automatically.
|
|
volumes: ['main'],
|
|
images: {
|
|
main: {
|
|
// Built from the project's Dockerfile. Build context is this package
|
|
// directory itself (the start-cli default). The Rust source is
|
|
// exposed inside the package dir as `licensing-service/`, which is
|
|
// a symlink to the sibling `../licensing-service/` repo so the
|
|
// upstream sources stay in their natural location while the build
|
|
// context stays self-contained.
|
|
source: {
|
|
dockerBuild: {},
|
|
},
|
|
arch: ['x86_64', 'aarch64'],
|
|
},
|
|
},
|
|
alerts: {
|
|
install: null,
|
|
update: null,
|
|
uninstall: {
|
|
en_US:
|
|
'Uninstalling will delete your server signing key and all license ' +
|
|
'records. Previously-issued license keys will no longer validate ' +
|
|
'against this server. Back up first if you plan to reinstall.',
|
|
},
|
|
restore: null,
|
|
start: null,
|
|
stop: null,
|
|
},
|
|
dependencies: {
|
|
// DepInfo = { description, optional } & ({ metadata: {title, icon} } | { s9pk })
|
|
// We use the s9pk form with `null` since we don't want to bundle a copy of
|
|
// BTCPay's s9pk into our package just to extract its metadata at build time
|
|
// — StartOS will pull the metadata from the installed instance at runtime.
|
|
btcpayserver: {
|
|
description: {
|
|
en_US:
|
|
'Required to receive Bitcoin payments and confirm settlement via webhook.',
|
|
},
|
|
optional: false,
|
|
s9pk: null,
|
|
},
|
|
},
|
|
})
|