A modern web application for managing Open Bank Project (OBP) APIs, built with SvelteKit, TypeScript, and Tailwind CSS.
API Manager II provides an intuitive interface for managing and monitoring Open Bank Project APIs. It features OAuth2/OIDC authentication, real-time metrics monitoring, and comprehensive API management capabilities.
- OAuth2/OIDC Authentication: Secure authentication with OBP servers
- API Metrics Monitoring: Real-time API call metrics with filtering and refresh capabilities
- Recent API Calls: Live tracking of API usage with detailed information
- Responsive Design: Modern UI built with Tailwind CSS and Skeleton UI
- Session Management: Redis-based session storage
- TypeScript Support: Full type safety throughout the application
- Frontend: SvelteKit, TypeScript, Tailwind CSS
- UI Components: Skeleton Labs, Lucide Icons, Bits UI
- Authentication: Arctic (OAuth2/OIDC), JWT
- Session Storage: Redis with svelte-kit-sessions
- Build Tool: Vite
- Testing: Vitest
- Node.js 18+
- Redis server
- Open Bank Project (OBP) server with OAuth2 configured
-
Clone the repository
git clone [email protected]:OpenBankProject/API-Manager-II.git cd API-Manager-II
-
Install dependencies
npm install
-
Configure environment variables
cp .env.example .env
Edit
.env
with your configuration:# OBP API Configuration PUBLIC_OBP_BASE_URL=http://127.0.0.1:9000 # OAuth Client Configuration OBP_OAUTH_CLIENT_ID=your-client-id OBP_OAUTH_CLIENT_SECRET=your-client-secret # Application Configuration APP_CALLBACK_URL=http://localhost:3003/login/obp/callback # Redis Configuration REDIS_HOST=localhost REDIS_PORT=6379 # Server Configuration PORT=3003
-
Start Redis server
redis-server
-
Run the development server
npm run dev
The application will be available at http://localhost:3003
.
- Register your application with your OBP server
- Configure the callback URL:
http://localhost:3003/login/obp/callback
- Update your
.env
file with the client credentials
For detailed OAuth setup instructions, see SETUP_GUIDE.md.
npm run dev
- Start development server on port 3003npm run build
- Build for productionnpm run preview
- Preview production buildnpm run check
- Type check the projectnpm run format
- Format code with Prettiernpm run lint
- Check code formattingnpm run test
- Run unit testsnpm run test:watch
- Run tests in watch modenpm run test:coverage
- Run tests with coverage
src/
├── lib/
│ ├── components/ # Reusable UI components
│ ├── stores/ # Svelte stores for state management
│ └── utils/ # Utility functions
├── routes/
│ ├── (protected)/ # Protected routes requiring authentication
│ │ └── management/ # API management features
│ │ ├── api/ # API management pages
│ │ └── metrics/ # Metrics and monitoring
│ ├── login/ # Authentication routes
│ └── logout/ # Logout handling
└── hooks.server.ts # Server-side hooks
- Real-time API metrics with auto-refresh (configurable intervals)
- Advanced filtering by date ranges, API versions, and more
- Visual countdown indicators for refresh timing
- Color-coded timestamps for visual feedback
- Comprehensive API endpoint management
- Real-time API call monitoring
- Detailed request/response tracking
- Multi-provider OAuth2/OIDC support
- Secure session management with Redis
- Automatic token refresh handling
npm run build
Docker configuration will be available in future releases.
Ensure all production environment variables are properly configured:
PUBLIC_OBP_BASE_URL
- Your OBP server URLOBP_OAUTH_CLIENT_ID
- OAuth client IDOBP_OAUTH_CLIENT_SECRET
- OAuth client secretAPP_CALLBACK_URL
- Production callback URLREDIS_HOST
- Redis server hostREDIS_PORT
- Redis server port
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
For support and questions:
- Open an issue on GitHub
- Check the SETUP_GUIDE.md for configuration help
- Review the project documentation
- Open Bank Project - The core OBP API server
- API Explorer - Interactive API documentation