Skip to content

Commit 6ce6844

Browse files
author
Faxbot Agent
committed
fix(ui): use local timezone for all timestamps in Event Stream
- Fixed EventStream to use toLocaleString() with milliseconds instead of date-fns format() - Removed unused date-fns import - All timestamps now show in user's local timezone - Format: Oct 06, 22:47:27.123 (24-hour, local time with ms precision) This ensures Event Stream, Provider Health, Jobs, and all other components show timestamps in the server's local timezone, not UTC.
1 parent 2e6ba9c commit 6ce6844

File tree

10 files changed

+37
-39
lines changed

10 files changed

+37
-39
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,22 +68,22 @@ The iOS companion lets you send faxes and check status from your phone. Email da
6868
## SDKs
6969
- Python: `pip install faxbot`
7070
- Node.js: `npm install faxbot`
71-
[SDK Usage](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/SDKS.md)
71+
[SDK Usage](https://docs.faxbot.net/latest/sdks/)
7272

7373
## Architecture highlights
7474
- Traits‑first capabilities: `/admin/providers` and `/admin/config` expose active providers + traits; UI and API gate features by traits.
7575
- Canonical event & error model: normalized inbound/outbound events, status mapping, and standard error codes.
7676
- Provider adapters: clean boundaries for verify_webhook/parse_inbound/send/status/cancel.
7777

7878
Docs:
79-
- [Canonical Events](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/api/canonical_events.md)
80-
- [MCP Integration](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/MCP_INTEGRATION.md)
81-
- [API Reference](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/API_REFERENCE.md)
79+
- [Canonical Events](https://docs.faxbot.net/latest/api/canonical-events/)
80+
- [MCP Integration](https://docs.faxbot.net/latest/mcp/)
81+
- [Reference Guide](https://docs.faxbot.net/latest/reference/)
8282

8383
## Security
8484
- Use `X-API-Key` (multi‑key) for auth.
8585
- Enforce HTTPS and HMAC signature verification for cloud webhooks.
8686
- No PHI in logs; only IDs/metadata are surfaced.
8787

8888
## Contributing
89-
See [CONTRIBUTING.md](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/CONTRIBUTING.md). Please open issues/PRs; this project is GUI‑first and traits‑first—avoid backend‑name checks in new code.
89+
See [Contributing Guide](https://docs.faxbot.net/latest/getting-started/contributing/). Please open issues/PRs; this project is GUI‑first and traits‑first—avoid backend‑name checks in new code.

api/admin_ui/src/components/EventStream.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import {
3434
Memory as MemoryIcon,
3535
} from '@mui/icons-material';
3636
import AdminAPIClient from '../api/client';
37-
import { format } from 'date-fns';
3837

3938
interface Event {
4039
id: string;
@@ -368,15 +367,18 @@ const EventStream: React.FC<EventStreamProps> = ({ client }) => {
368367
secondary={
369368
<Box>
370369
<Typography variant="caption" color="text.secondary" display="block">
371-
{new Date(event.occurred_at).toLocaleString('en-US', {
372-
month: 'short',
373-
day: '2-digit',
374-
hour: '2-digit',
375-
minute: '2-digit',
376-
second: '2-digit',
377-
fractionalSecondDigits: 3,
378-
hour12: false
379-
})}
370+
{(() => {
371+
const d = new Date(event.occurred_at);
372+
const ms = d.getMilliseconds().toString().padStart(3, '0');
373+
return d.toLocaleString('en-US', {
374+
month: 'short',
375+
day: '2-digit',
376+
hour: '2-digit',
377+
minute: '2-digit',
378+
second: '2-digit',
379+
hour12: false
380+
}) + '.' + ms;
381+
})()}
380382
{event.job_id && ` • Job: ${event.job_id}`}
381383
{event.external_id && ` • Ext: ${event.external_id}`}
382384
{event.correlation_id && ` • Correlation: ${event.correlation_id}`}

config/plugin_registry.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"categories": ["outbound"],
88
"capabilities": ["send", "get_status", "webhook"],
99
"description": "Recommended for most users; HIPAA-ready with BAA.",
10-
"learn_more": "https://docs.faxbot.net/providers/phaxio"
10+
"learn_more": "https://docs.faxbot.net/latest/setup/phaxio/"
1111
},
1212
{
1313
"id": "signalwire",
@@ -16,7 +16,7 @@
1616
"categories": ["outbound"],
1717
"capabilities": ["send", "get_status", "webhook"],
1818
"description": "Cloud fax using Twilio‑style Compatibility API.",
19-
"learn_more": "https://dmontgomery40.github.io/Faxbot/backends/signalwire-setup.html"
19+
"learn_more": "https://docs.faxbot.net/latest/setup/signalwire/"
2020
},
2121
{
2222
"id": "freeswitch",
@@ -25,7 +25,7 @@
2525
"categories": ["outbound"],
2626
"capabilities": ["send"],
2727
"description": "Self‑hosted fax via mod_spandsp (txfax/rxfax).",
28-
"learn_more": "https://dmontgomery40.github.io/Faxbot/backends/freeswitch-setup.html"
28+
"learn_more": "https://docs.faxbot.net/latest/setup/freeswitch/"
2929
},
3030
{
3131
"id": "sinch",
@@ -34,7 +34,7 @@
3434
"categories": ["outbound"],
3535
"capabilities": ["send", "get_status"],
3636
"description": "Direct Sinch upload model for Phaxio by Sinch accounts.",
37-
"learn_more": "https://docs.faxbot.net/providers/sinch"
37+
"learn_more": "https://docs.faxbot.net/latest/setup/sinch/"
3838
},
3939
{
4040
"id": "sip",
@@ -43,7 +43,7 @@
4343
"categories": ["outbound"],
4444
"capabilities": ["send", "get_status"],
4545
"description": "Advanced users; requires SIP trunk + T.38 and AMI.",
46-
"learn_more": "https://docs.faxbot.net/providers/asterisk"
46+
"learn_more": "https://docs.faxbot.net/latest/setup/sip-asterisk/"
4747
},
4848
{
4949
"id": "local",
@@ -52,7 +52,7 @@
5252
"categories": ["storage"],
5353
"capabilities": ["store", "retrieve", "delete"],
5454
"description": "Local storage for development only.",
55-
"learn_more": "https://docs.faxbot.net/storage/local"
55+
"learn_more": "https://docs.faxbot.net/latest/operations/"
5656
},
5757
{
5858
"id": "s3",
@@ -61,7 +61,7 @@
6161
"categories": ["storage"],
6262
"capabilities": ["store", "retrieve", "delete"],
6363
"description": "Production storage with SSE-KMS recommended for PHI.",
64-
"learn_more": "https://docs.faxbot.net/storage/s3"
64+
"learn_more": "https://docs.faxbot.net/latest/operations/"
6565
}
6666
]
6767
}

docs/SDKS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,4 @@ const client = new FaxbotClient('http://localhost:8080', 'YOUR_API_KEY');
6868
## MCP vs SDK
6969
- The SDKs do not include MCP (Model Context Protocol) logic. They are simple HTTP clients for developers.
7070
- MCP integration is a separate component (stdio/HTTP servers) for AI assistants.
71-
- See the guide: docs/MCP_INTEGRATION.md for setup, transports, and examples.
71+
- See the guide: https://docs.faxbot.net/latest/mcp/ for setup, transports, and examples.

docs/SECURITY.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ Configuration and guidance for HIPAA‑aligned deployments and OAuth/OIDC setup.
2121
- WebSocket (Node): protect with `MCP_WS_API_KEY` (or `API_KEY`); run behind TLS or an authenticated proxy.
2222

2323
Recommended reading
24-
- [Authentication (API Keys)](/security/authentication)
25-
- [HIPAA Requirements](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/HIPAA_REQUIREMENTS.md)
26-
- [OAuth/OIDC Setup](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/OAUTH_SETUP.md)
27-
- [Authentication (API Keys)](/Faxbot/security/authentication.html)
28-
- [OAuth/OIDC Setup](/Faxbot/security/oauth-setup.html)
29-
- [Compliance Overview (faxbot.net)](https://faxbot.net/compliance/)
24+
- [Authentication (API Keys)](https://docs.faxbot.net/latest/security/authentication/)
25+
- [HIPAA Requirements](https://docs.faxbot.net/latest/HIPAA_REQUIREMENTS/)
26+
- [OAuth/OIDC Setup](https://docs.faxbot.net/latest/security/oauth-setup/)
27+
- [Compliance Overview](https://faxbot.net/compliance/)
3028
- [Business Associate Agreement (PDF)](https://faxbot.net/compliance/business-associate-agreement.pdf)

docs/api/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Complete REST API documentation for Faxbot.
1515
- **[📋 Copy & Paste API Docs](/api-docs.html)** - **GUARANTEED TO WORK** with any tool
1616
- **[OpenAPI JSON](/openapi.json)** - Standard JSON format (most compatible)
1717
- **[OpenAPI YAML](/openapi.yaml)** - YAML format
18-
- **[🔍 Swagger UI](https://petstore.swagger.io/?url=https://docs.faxbot.net/openapi.json)** - Interactive API explorer
18+
- **[🔍 Swagger UI](https://petstore.swagger.io/?url=https://faxbot.net/api/v1/openapi.yaml)** - Interactive API explorer
1919

2020
## Quick Start
2121

docs/archive/legacy/SDKS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,4 @@ const client = new FaxbotClient('http://localhost:8080', 'YOUR_API_KEY');
6868
## MCP vs SDK
6969
- The SDKs do not include MCP (Model Context Protocol) logic. They are simple HTTP clients for developers.
7070
- MCP integration is a separate component (stdio/HTTP servers) for AI assistants.
71-
- See the guide: docs/MCP_INTEGRATION.md for setup, transports, and examples.
71+
- See the guide: https://docs.faxbot.net/latest/mcp/ for setup, transports, and examples.

docs/archive/legacy/SECURITY.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ Configuration and guidance for HIPAA‑aligned deployments and OAuth/OIDC setup.
2121
- WebSocket (Node): protect with `MCP_WS_API_KEY` (or `API_KEY`); run behind TLS or an authenticated proxy.
2222

2323
Recommended reading
24-
- [Authentication (API Keys)](/security/authentication)
25-
- [HIPAA Requirements](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/HIPAA_REQUIREMENTS.md)
26-
- [OAuth/OIDC Setup](https://github.com/dmontgomery40/faxbot/blob/auto-tunnel/docs/OAUTH_SETUP.md)
27-
- [Authentication (API Keys)](/Faxbot/security/authentication.html)
28-
- [OAuth/OIDC Setup](/Faxbot/security/oauth-setup.html)
29-
- [Compliance Overview (faxbot.net)](https://faxbot.net/compliance/)
24+
- [Authentication (API Keys)](https://docs.faxbot.net/latest/security/authentication/)
25+
- [HIPAA Requirements](https://docs.faxbot.net/latest/HIPAA_REQUIREMENTS/)
26+
- [OAuth/OIDC Setup](https://docs.faxbot.net/latest/security/oauth-setup/)
27+
- [Compliance Overview](https://faxbot.net/compliance/)
3028
- [Business Associate Agreement (PDF)](https://faxbot.net/compliance/business-associate-agreement.pdf)

sdks/node/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@ run().catch(console.error);
4343

4444
## MCP Note
4545
- MCP (Model Context Protocol) is not part of this SDK. It is a separate integration layer for AI assistants.
46-
- Refer to `docs/MCP_INTEGRATION.md` in the repository for MCP setup and usage.
46+
- Refer to the docs for setup and usage: https://docs.faxbot.net/latest/mcp/

sdks/python/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ print("Status:", status["status"])
3939

4040
## MCP Note
4141
- MCP (Model Context Protocol) is not part of this SDK. It is a separate integration layer for AI assistants.
42-
- Refer to `docs/MCP_INTEGRATION.md` in the repository for MCP setup and usage.
42+
- Refer to the docs for setup and usage: https://docs.faxbot.net/latest/mcp/

0 commit comments

Comments
 (0)