* More Options refactoring
Continues refactoring config classes to use the propert Options pattern where possible.
DataDirectories and DatabaseOptions are now configured the Options pattern and the BTCPayOptions is now moved alongside the other config setup
* Move COnfigure logic for Options to the Startup
* Introduce Additional Data to Store Blob and move obsolete props to migration
* Fixes and tests
* Small adjustements to prevent tracking too many objects
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Remove only dependency on Dbriize (TextSearch in new invoice column)
* Switch to table for invoice text search
* Adding missing using after rebase
* Removing database migration in preparation for refresh
* Database Migration: Adding InvoiceSearchData
* Refactoring InvoicesRepository to make AddToTextSearch static and non-async
Operation as async is too expensive for simple filtering and AddRange
* Renaming InvoiceQuery property to Take
More inline with what property does by convention, Take is used in conjuction with Skip
* Refactoring SettingsRepository so update of settings can happen in another context
* Adding DbMigrationsHostedService that performs long running data migrations
* Commenting special placing of MigrationStartupTask
* Simplifying code and leaving comment on expected flow
* Resolving problems after merge
* Database Migration: Refreshing database migration, ensuring no unintended changes on ModelSnapshot
Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
This allows plugins to create custom dbcontexts, which would be namespaced in the scheme with a prefix. Migrations are supported too and the table would be prefixed too
Almost an exact replica of https://developer.wordpress.org/plugins/hooks/
This will allow plugins to extend specific points in business logic, such as validation, invoice payload changes, etc
* BTCPay Extensions Part 2
This PR cleans up the extension system a bit in that:
* It renames the test extension to a more uniform name
* Allows yo uto have system extensions, which are extensions but bundled by default with the release (and cannot be removed)
* Adds a tool to help you generate an extension package from a csproj
* Refactors the UI extension points to a view component
* Moves some more interfaces to the Abstractions csproj
* Rename to plugins
* Remove SQLite as default option
IF MERGED, STORES WITH NO DB CONFIG WILL NOT START UNTIL CONFIG IS UPDATED WITH `sqlitefile=sqlite.db`
* remove sqlite conn string option
* toggle between abs path or relative for sqlite db
* Update DefaultConfiguration.cs
Added dedicated endpoint that generates an invoice or returns an existing one as needed for a shopify order
Added rate limiter to shopify endpoint to prevent abuse
Reduce shopify js to a small file
Use events from btcpay modal to reduce constant pinging to btcpay server
Register invoice payment failures on the shopify backend.
replaces #1591 and #1592 , closes#1571 Replaces the Currencies.txt to a json format which includes the networks too ( there is also a test to check now) Also makes CurrencyPair not depend on network and instead use CurrencyNameTable
* GreenField: Payment Requests CRUD
* fixes
* fix swagger
* fix swag
* rebase fixes
* Add new permissions for payment requests
* Adapt PR to archive
* fix tst
* add to contains policxy
* make decimals returned as string due to avoid shitty language parsing issues
* do not register decimal json converter as global
* fix cultureinfo for json covnerter
* pr changes
* add json convertet test
* fix json test
* fix rebase
* Auto label utxos based on invoice and payjoin
This PR introduces automatic labelling to transactions.
* If it is an incoming tx to an invoice, it will tag it as such.
* If it was a payjoin tx , it will tag it as such.
* If a transaction's inputs were exposed to a payjoin sender, we tag it as such.
* wip
* wip
* support in coinselection
* remove ugly hack
* support wallet transactions page
* remove messy loop
* better label template helpers
* add tests and susbcribe to event
* simplify data
* fix test
* fix label + color
* fix remove label
* renove useless call
* add toString
* fix potential crash by txid
* trim json keyword in manual label
* format file
* WIP: Add Tor Http Client Factory
This PR adds a Tor Http Client Factory so that we can do HTTP requests over socks5( which we usually use tor's socks5).
Using it for payjoin when possible.
Currently have an issue where a 503 is always returned. Must be something wrong with my tor config or the socks proxy lib Im using
* fix
* remove external dependency
* make payjoin client use tor client if available
* fix docker test
* use tor client only if available and necessary
* remove bip 79 mention
* BPU Prep Work Part2
* Adjust tests to use the hot wallet when registering deriv scheme
* Add amount to payment data view for onchain payments
* Make zone limits higher when in dev mode (for tests in next PR)
* Make IPaymentMethodDetails serialize/deserialize through payment type using the network
* Allow named settings through settings repo
* Refactor some extensions for next PR
* pr changes
* use json convert for now
* new feature: Wallet Receive Page
closes#965
* Conserve addresses by waiting till address is spent before generating each run
* fix tests
* Filter by cryptocode before matching outpoint
* fix build
* fix edge case issue
* use address in keypathinfo directly
* rebase fixes
* rebase fixes
* remove duplicate code
* fix messy condition
* fixes
* fix e2e
* fix
* Part 1 & Part 2 squashed commits
pr changes
pr fixes
remove config for openid -- no need for it for now
Part 1: OpenIddict - Minor Changes & Config prep
Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies
pr changes
fix merge
fix compile
fix compile #2
Part 1: OpenIddict - Minor Changes & Config prep
add missing nuget
Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies
* Part3: OpenIddict: Add Flows Event Handlers
* pr changes
* fix merge
* fix rebase
* fix imports
* cleanup
* do not allow u2f enabled accounts to log in
* start better tests for flows
* add tests
* fixes
* reintroduce dynamic policy as policies on jwt do not work without it
* reduce logs
* fix incorrect endpoint definitions
* Add implicit flow e2e test
* add code flow and refresh flow
* do not allow jwt bearer auth for all requests( only those under /api)
* remove commentedt code
* make sure authorize attr is marked with scheme
* remove dynamic policy and set claims in jwt handler
* cleanup
* change serversettings policy to not need a claim
* Add test to checkadmin verification
* revert server setting claim removal
* fix test
* switch back to claim
* unit test fixes
* try fix build with weird references to csprojes
* start fixing rebase
* remove https requirement to handle tor
* reformat tests correctly
* fix csproj
* fix ut formatting
* PR Changes
* do not show selenium browser
* mark items to abstract
wip
wip
wip
wip
wip
wip
wip
cleanup
parse other types
compile and fix tests
fix bug
fix warnings
fix rebase error
reduce payment method handler passings
more cleanup
switch tests to Fast mode
fix obsolete warning
remove argument requirement
rebase fixes
remove overcomplicated code
better parsing
remove dependency on environement
remove async
* fixes and simplification
* simplify
* clean up even more
* replace nuglify dependency
* remove extra space
* Fix tests
* fix booboo
* missing setter
* change url resolver
* reduce payment method handlers
* wrap payment method handlers in a custom type
* fix tests
* make invoice controller UI selectlist population cleaner
* make store controller use payment handler dictionary
* fix ln flag
* fix store controller test
* remove null checks on payment handlers
* remove unused imports
* BitcoinSpecificBtcPayNetwork - abstract BTCPayNetwork
* some type fixes
* fix tests
* simplify fetching handler in invoice controller
* rename network base and bitcoin classes
* abstract serializer to network level
* fix serializer when network not provided
* fix serializer when network not provided
* fix serializer when network not provided
* Abstract more payment type specific logic to handlers
* fix merge issue
* small fixes
* make use of repository instead of direct context usage
* reduce redundant code
* sanity check
* test fixes
* Part 1: OpenIddict - Minor Changes & Config prep
* add missing nuget
* pr changes
* pr fixes
* remove config for openid -- no need for it for now
* remove unused extension
* Add tests
* use pay tester http client
* check redirecturl in tests
* init u2f
* ux fixes
* Cleanup Manage Controller
* final changes
* remove logs
* remove console log
* fix text for u2f
* Use Is Secure instead of IsHttps
* add some basic u2f tests
* move loaders to before title
* missing commit
* refactor after nicolas wtf moment
* wip
* add in storage system
* ui fixes
* fix settings ui
* Add Files Crud UI
* add titles
* link files to users
* add migration
* set blob to public
* remove base 64 read code
* fix file query model init
* move view model to own file
* fix local root path
* use datadir for local storage
* move to services
* add direct file url
* try fix tests
* remove magic string
* remove other magic strings
* show error message on unsupported provider
* fix asp net version
* redirect to storage settings if provider is not supported
* start writing tests
* fix tests
* fix test again
* add some more to the tests
* more tests
* try making local provider work on tests
* fix formfile
* fix small issue with returning deleted file
* check if returned data is null for deleted file
* validate azure Container name
* more state fixes
* change azure test trait
* add tmp file url generator
* fix tests
* small clean
* disable amazon and google
comment out unused code for now
comment out google/amazon