This project provides REST APIs to connect to SQL Account via its SDK. It also includes an embedded Vue.js-based frontend for monitoring logs and viewing API documentation. SQL Account is an on-premise application, and this project addresses the lack of APIs for integration by offering a robust solution for connecting SQL Account to third-party systems.
- REST APIs for Integration: Provides endpoints to interact with SQL Account data using SQL queries.
- Vue.js Frontend: Embedded dashboard located in
wwwroot/dashboardfor monitoring logs and viewing API documentation. - Database Querying: Enables database operations on Firebird databases using SQL queries, with basic SQL injection protection.
- Extensible Framework: Built with .NET 8, making it easy to extend and contribute.
- Secure Deployment: Designed for secure access with recommendations for trusted environments and tools.
- StockItemController:
- Manages stock items and inventory details.
- BizObjectController:
- Handles business object-related operations.
- CustomerController:
- Provides customer-related CRUD operations.
- SalesInvoiceController:
- Manages sales invoices and related transactions.
- CustomerInvoiceController:
- Handles customer invoices and financial details.
- StockAdjustmentController:
- Facilitates stock adjustment operations.
- CustomerPaymentController:
- Processes customer payments and records.
- SalesOrderController:
- Manages sales orders and related operations.
- HistoryController:
- Tracks history logs of operations.
- StockItemTemplateController:
- Manages stock item templates for predefined configurations.
- AppController:
- Provides application-level configurations and information.
Before using this project, ensure the following prerequisites are installed:
-
Node.js (v18+)
- Download Node.js
- Follow the installation wizard for your operating system.
-
.NET 8 Hosting Bundle
- Download .NET 8 Hosting Bundle
- Choose the "Hosting Bundle" option to run .NET applications on IIS.
-
.NET 8 SDK (for development)
- Download .NET 8 SDK
- Install the SDK if you plan to contribute to the project or modify its codebase.
-
SQL Account
- Download SQL Account
- SQL Account must be installed and running on the system.
-
IIS (Internet Information Services)
- To enable IIS on Windows:
- Open Control Panel > Programs > Programs and Features.
- Click Turn Windows features on or off.
- Check the box for Internet Information Services and click OK.
- To enable IIS on Windows:
To deploy the application as a Windows Service or on IIS, follow the CLI instructions available at SQL Account CLI.
To run the project locally for debugging and implementation:
-
Start the Frontend:
- Navigate to
wwwroot/dashboardand run:npm run dev
- Configure the
.envfile (similar toenv.exampleinwwwroot/dashboard) to set the startup port for the frontend and the backend target URL.
- Navigate to
-
Start the Backend:
- Navigate to the backend project directory and run:
dotnet watch run --project src/SqlAccountRestAPI/
- Configure the
.envfile (similar toenv.exampleinsrc/SqlAccountRestAPI/) to allow the frontend's CORS access based on the frontend port set in step 1.
- Navigate to the backend project directory and run:
-
Hot Reloading:
- Both the frontend and backend support hot-reloading. You can edit files in either codebase, and changes will apply automatically without restarting the application.
- SQL Injection Risk: While basic SQL injection checks are implemented, queries should only be shared with trusted individuals. The SQL Account SDK does not support parameterized queries.
- API Exposure: Avoid exposing the REST API to the internet. Use secure methods like Cloudflare Tunnel or VPN to restrict access.
We welcome contributions to improve and extend this project.
- Fire a Ticket: If you encounter any issues, feel free to fire a ticket on our GitHub repository.
- Contact Support: Reach out to our team at support@hexasync.com.
- Fork and Contribute: You are welcome to fork the project, develop your features, and create pull requests (PRs) for review.
For secure deployment:
- Use a trusted environment with restricted access.
- Configure logging and monitor API usage via the embedded dashboard.
- Regularly update and patch your environment to mitigate security risks.
This project is maintained and contributed by the HexaSync Team.
This project is open-source. Contributions are highly encouraged!