Data models for a server using SQLAlchemy, and json schemas. Intended to be used with Postges, and there will definitely be issues if you try to use with MySQL.
- Users w/ Permissions & Settings
- Wallet models (Debits, Credits, Balances)
To ensure forward compatibility, the best way to install sqlalchemy-models is with make.
make install
alchemyjsonschema can convert the SQLAlchemy orm classes in this package into json schemas. To build the schemas, run:
make schemas
This will generate a schema for each table, and write them to sqlalchemy_odels/schemas/<tablename>.json
.
This package comes with a tool for storing signatures related to the rows in your primary tables. If a row represents a record, then the corresponding signature row will be a signed copy of the same data. This feature can be used in auditing, constructing hash trees, or other proofs.
id | data | user_id |
---|---|---|
1 | "signed bitjws User1" | 1 |
2 | "signed bitjws User4" | 4 |
3 | "signed bitjws User7" | 7 |
The generator is a simple function that takes the declarative to be signed as an argument.
from sqlalchemy_login_models import generate_signature_class
from sqlalchemy_login_models.model import User
# this is a declarative class derived from Base, just like User
UserSig = generate_signature_class(User)
Convert monetary data types to ledger-cli entries. This trusted standard in double entry accounting is powerful, and accurate.
P 2016/07/10 04:56:21 BTC 770.00000000 USD
P 2016/07/10 04:56:21 USD 0.00129870 BTC
2016/07/10 04:56:21 testx BTC_USD sell
;<Trade(trade_id='kraken|SKDFJS-GFSDS-SDFSDF', side='sell', amount=1.10000000 BTC, price=770.00000000 USD, fee=1.00000000 USD, fee_side='quote', market='BTC_USD', exchange='kraken', time=2016/07/10 04:56:21)>
Assets:kraken:USD 846.00000000 USD @ 0.00129870 BTC
FX:BTC_USD:sell -847.00000000 USD @ 0.00129870 BTC
Assets:kraken:BTC -1.10000000 BTC @ 770.00000000 USD
FX:BTC_USD:sell 1.10000000 BTC @ 770.00000000 USD
Expenses:TradeFee 1.00000000 USD @ 0.00129870 BTC