[media-types] Review request: application/vnd.oaif+sqlite

Scott Wirth <[email protected]>
Newsgroups gmane.ietf.types
Message-ID <_JGNKy-ZE04XZ2wJW8IOHSRlP1M8g0V22CA3CYyNyDy9LGGvMHZF46mS1VXQe2-DcrXI_fcy8FbG1_8-ArPjhiWvqWdt2kVxUJRKtEC5PFc=@wirthmgt.com>
Hello,

I would like to request community review of a proposed media type
registration for the Open Accounting Interchange Format (OAIF).

Type: application/vnd.oaif+sqlite
Extension: .oaif
Specification: https://github.com/GitHubNewbie0/oaif-open-accounting-format/blob/main/docs/SPECIFICATION.md

OAIF is a SQLite-based format for storing and exchanging accounting
data, designed to facilitate migration between accounting systems.

The full registration template is below. Comments and feedback are
welcome.

Media Type Registration Template

Type name: application

Subtype name: vnd.oaif+sqlite

Required parameters: N/A

Optional parameters: N/A

Encoding considerations: binary

The OAIF format is a binary SQLite database file. It should be transferred using binary encoding (base64 for email, binary for HTTP).

Security considerations:

OAIF files are SQLite databases that may contain sensitive financial information including bank account details, customer personal information, employee payroll data, and tax identification numbers.

Applications processing OAIF files should:

- Validate the SQLite application_id (0x4F414946) before processing
- Use parameterized SQL queries to prevent SQL injection from maliciously crafted files
- Implement appropriate access controls based on data sensitivity
- Consider encryption for files containing sensitive data

OAIF files may contain embedded JSON data in qb_raw fields. Applications should parse this JSON safely without executing any code.

The SQLite file format itself has been extensively security-audited. OAIF inherits SQLite's security properties.

Interoperability considerations:

OAIF files are standard SQLite 3.x databases and can be read by any SQLite-compatible library, available for virtually all programming languages and operating systems. No specialized software is required beyond SQLite support.

The format uses UTF-8 encoding for all text data and ISO 8601 format for dates, ensuring cross-platform compatibility.

The SQLite application_id field (offset 68-71) contains the value 0x4F414946 ("OAIF" in ASCII) to distinguish OAIF files from other SQLite databases.

Published specification:

The OAIF specification is published at: [URL to be determined - GitHub repository or project website]

The specification defines:

- File identification via SQLite application_id = 0x4F414946
- Database schema for accounting data
- Reference tables for account types, transaction types, and item types
- Master data tables (accounts, customers, vendors, items)
- Transaction tables with double-entry accounting support
- Data integrity requirements

Applications which use this media type:

- OAIF converter tools (qb2oaif.py, oaif2manager.py)
- Accounting software with OAIF import/export capabilities
- Data migration tools for accounting systems
- Business intelligence and reporting tools
- Backup and archival systems for accounting data

Fragment identifier considerations:

Fragment identifiers are not defined for this media type.

Restrictions on usage: N/A

This media type may be used by any application for storing or exchanging accounting data.

Additional information:

- Deprecated alias names for this type: N/A
- Magic number(s):

- Bytes 0-15: SQLite format 3\0 (standard SQLite magic)
- Bytes 68-71: 0x4F414946 (big-endian, OAIF application_id)

- File extension(s): .oaif
- Macintosh file type code: N/A
- Object Identifiers: N/A

General Comments:

OAIF (Open Accounting Interchange Format) is designed to facilitate migration of accounting data between systems. It uses SQLite as its container format to ensure universal accessibility without proprietary software dependencies.

The format preserves complete transaction history with full double-entry accounting integrity. Each transaction must balance (debits equal credits), and the overall trial balance must equal zero.

OAIF supports standard accounting entities: chart of accounts, customers, vendors, employees, items, and 35 transaction types covering invoices, bills, payments, journal entries, payroll, and inventory operations.

Person to contact for further information:

- Name: Scott Wirth
- Email: [email protected]

Intended usage: COMMON

OAIF is intended for broad use in accounting data interchange, migration, and archival.

Change controller:

Scott Wirth

[email protected]

Provisional registration? No

Thank you,
Scott Wirth

_______________________________________________
media-types mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.