Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codex/environments/environment.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export DOTNET_ENVIRONMENT=Development
export ASPNETCORE_ENVIRONMENT=Development

if command -v aspire >/dev/null 2>&1; then
aspire run
aspire run --nologo --non-interactive
else
dotnet run --project src/Exceptionless.AppHost/Exceptionless.AppHost.csproj
fi
Expand Down
2 changes: 2 additions & 0 deletions build/update-config-next.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/bash

ApiUrl="${EX_ApiUrl:-}"
ClientSetupShowServerUrl="${EX_ClientSetupShowServerUrl:-true}"
EnableAccountCreation="${EX_EnableAccountCreation:-true}"

OAuth="${EX_ConnectionStrings__OAuth:-}"
Expand Down Expand Up @@ -37,6 +38,7 @@ config="
PUBLIC_ENABLE_ACCOUNT_CREATION: '$EnableAccountCreation',
PUBLIC_SYSTEM_NOTIFICATION_MESSAGE: '$EX_NotificationMessage',
PUBLIC_EXCEPTIONLESS_API_KEY: '$EX_ExceptionlessApiKey',
PUBLIC_EXCEPTIONLESS_CLIENT_SETUP_SHOW_SERVER_URL: '$ClientSetupShowServerUrl',
PUBLIC_EXCEPTIONLESS_SERVER_URL: '$EX_ExceptionlessServerUrl',
Comment thread
niemyjski marked this conversation as resolved.
PUBLIC_STRIPE_PUBLISHABLE_KEY: '$EX_StripePublishableApiKey',
PUBLIC_FACEBOOK_APPID: '$FacebookAppId',
Expand Down
1 change: 1 addition & 0 deletions k8s/ex-prod-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
maxReplicaCount: 5

config:
EX_ClientSetupShowServerUrl: "false"
EX_EnableSnapshotJobs: "true"
EX_SmtpFrom: "Exceptionless <noreply@exceptionless.io>"
EX_ContactEmailAddress: "support@exceptionless.com"
Expand Down
5 changes: 3 additions & 2 deletions src/Exceptionless.AppHost/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
int oldAppLiveReloadPort = worktreePorts?.OldAppLiveReload ?? 35729;
string oldAppAspNetCoreUrls = String.Concat("http://localhost:", oldAppHttpPort);
int appPort = worktreePorts?.AppHttps ?? 7131;
const int DefaultApiHttpsPort = 7111;
string exceptionlessServerUrl = worktreePorts?.ApiHttpsUrl ?? $"https://api-ex.dev.localhost:{DefaultApiHttpsPort}";
const string SharedEmailConnectionString = "smtp://localhost:1025";

var elastic = builder.AddElasticsearch("Elasticsearch", port: 9200)
Expand Down Expand Up @@ -172,14 +174,13 @@
oldApp.WithEnvironment("API_HTTP", worktreePorts.ApiHttpUrl)
.WithEnvironment("API_HTTPS", worktreePorts.ApiHttpsUrl);
}
#pragma warning restore ASPIREBROWSERLOGS001

#pragma warning disable ASPIREBROWSERLOGS001
var app = builder.AddViteApp("App", "../Exceptionless.Web/ClientApp")
.WithBrowserLogs()
.WithReference(api)
.WithReference(oldApp)
.RemoveJavaScriptDebuggingAnnotation()
.WithEnvironment("PUBLIC_EXCEPTIONLESS_SERVER_URL", exceptionlessServerUrl)
.WithEnvironment("PORT", appPort.ToString())
.WithEndpoint("http", e =>
{
Expand Down
7 changes: 4 additions & 3 deletions src/Exceptionless.Web/ClientApp/.env
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
PUBLIC_BASE_URL=
PUBLIC_ENABLE_ACCOUNT_CREATION=true
PUBLIC_SYSTEM_NOTIFICATION_MESSAGE=
PUBLIC_EXCEPTIONLESS_API_KEY=
PUBLIC_EXCEPTIONLESS_CLIENT_SETUP_SHOW_SERVER_URL=true
PUBLIC_EXCEPTIONLESS_SERVER_URL=
PUBLIC_STRIPE_PUBLISHABLE_KEY=
PUBLIC_FACEBOOK_APPID=
PUBLIC_GITHUB_APPID=
PUBLIC_GOOGLE_APPID=
PUBLIC_MICROSOFT_APPID=
PUBLIC_INTERCOM_APPID=
PUBLIC_MICROSOFT_APPID=
PUBLIC_SLACK_APPID=
PUBLIC_STRIPE_PUBLISHABLE_KEY=
PUBLIC_SYSTEM_NOTIFICATION_MESSAGE=
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export class ExceptionlessE2EJourney {
this.projectId = getIdFromUrl(this.page, /\/project\/([^/]+)\/configure/);
}

await expect(this.page.getByText('Select your project type.')).toBeVisible();
await expect(this.page.getByText('Choose your project type.')).toBeVisible();

await selectProjectType(this.page, 'Bash Shell');
await expect(this.page.getByText('Execute the following in your shell.')).toBeVisible();
Expand Down Expand Up @@ -222,7 +222,7 @@ export class ExceptionlessE2EJourney {
await this.page.waitForURL(/\/next\/project\/[^/]+\/configure/, { timeout: 30_000 });
this.projectId = getIdFromUrl(this.page, /\/project\/([^/]+)\/configure/);
this.organizationId = await this.getOrganizationIdByName();
await expect(this.page.getByText('Select your project type.')).toBeVisible();
await expect(this.page.getByText('Choose your project type.')).toBeVisible();
}

async submitRepresentativeEvent(): Promise<void> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,8 @@
</script>

<Notification variant="information" {...restProps}>
<NotificationTitle>We haven't received any data!</NotificationTitle>
<NotificationTitle>We haven't received any events yet!</NotificationTitle>
<NotificationDescription>
Please <A href={configureHref}>configure your clients</A> for
{#if projects.length === 1}
the
{/if}
{#each projects as project, index (project.id)}
{#if index > 0},
{/if}{project.name}
{/each}
{#if projects.length === 1}
project
{:else}
projects
{/if} and start becoming exceptionless!
Open <A href={configureHref}>Client setup</A> for this project and start becoming Exceptionless!
</NotificationDescription>
</Notification>
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
<NotificationDescription>
Please
<A href={resolve('/(app)/project/add')}>add a new project</A>
and start becoming exceptionless in less than 60 seconds!
and start becoming Exceptionless in less than 60 seconds!
</NotificationDescription>
</Notification>
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
</DropdownMenu.Item>
<DropdownMenu.Item onclick={() => goto(resolve('/(app)/project/[projectId]/configure', { projectId: project.id }))}>
<Configure />
Download & Configure Client
Client Setup
</DropdownMenu.Item>
<DropdownMenu.Item onclick={() => (showRemoveProjectDialog = true)} disabled={removeProject.isPending}>
<X />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import { getIntercomTokenQuery } from '$features/auth/api.svelte';
import { accessToken, gotoLogin } from '$features/auth/index.svelte';
import { UpgradeRequiredDialog } from '$features/billing';
import { upgradeRequiredDialog } from '$features/billing/upgrade-required.svelte';
import { invalidatePersistentEventQueries } from '$features/events/api.svelte';
import { filterUsesPremiumFeatures } from '$features/events/premium-filter';
import { buildIntercomBootOptions, IntercomShell } from '$features/intercom';
Expand Down Expand Up @@ -525,9 +524,7 @@
{/snippet}
</IntercomShell>

{#if upgradeRequiredDialog.open}
<UpgradeRequiredDialog />
{/if}
<UpgradeRequiredDialog />
{/if}

<Telemetry userId={isAuthenticated ? meQuery.data?.email_address : undefined} userName={isAuthenticated ? meQuery.data?.full_name : undefined} />
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ export function routes(): NavigationItem[] {
icon: Settings,
title: 'General'
},
{
group: 'Organization Settings',
href: resolve('/(app)/organization/[organizationId]/usage', { organizationId }),
icon: Usage,
title: 'Usage'
},
{
group: 'Organization Settings',
href: resolve('/(app)/organization/[organizationId]/users', { organizationId }),
Expand All @@ -47,6 +41,12 @@ export function routes(): NavigationItem[] {
icon: Zap,
show: (ctx) => !!ctx.user?.roles?.includes('global'),
title: 'Features'
},
{
group: 'Organization Settings',
href: resolve('/(app)/organization/[organizationId]/usage', { organizationId }),
icon: Usage,
title: 'Usage'
}
];
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<script lang="ts">
import type { NewToken, ViewToken } from '$features/tokens/models';

import { resolve } from '$app/paths';
import { page } from '$app/state';
import DataTableViewOptions from '$comp/data-table/data-table-view-options.svelte';
import { Muted } from '$comp/typography';
import { A, Muted } from '$comp/typography';
import { Button } from '$comp/ui/button';
import { organization } from '$features/organizations/context.svelte';
import { DEFAULT_LIMIT } from '$features/shared/api/api.svelte';
Expand Down Expand Up @@ -79,7 +80,13 @@
</script>

<div class="space-y-6">
<Muted>Create and manage API keys for authenticating your applications with Exceptionless</Muted>
<div class="space-y-1">
<Muted>Create and manage API keys for applications and services sending events to Exceptionless.</Muted>
<Muted>
To install an SDK and start sending events, open
<A href={resolve('/(app)/project/[projectId]/configure', { projectId })}>Client setup</A>.
</Muted>
</div>

<TokensDataTable bind:limit={tokensQueryParameters.limit!} isLoading={tokensQuery.isLoading} {table}>
{#snippet toolbarChildren()}
Expand Down
Loading
Loading