Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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 ci.global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "10.0.201"
"version": "10.0.203"
}
}
2 changes: 1 addition & 1 deletion src/Roastery/Roastery.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="SerilogTracing" Version="2.3.1" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Api/ApiConstants.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A number of added files copied headers with incorrect copyright years. I've ripped the bandaid off and updated all of them so we stop propagating this mistake.

// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Api/SeqConnectionFactory.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/AppLoader.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppDefinitionFormatter.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppMetadataReader.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppPlatformDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingDefinition.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingType.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Definitions/AppSettingValue.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/AppActivator.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/AppHost.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Apps/Hosting/EventFormat.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Command.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandFeature.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandLineHost.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/CommandMetadata.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/CreateCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ApiKey/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/App/DefineCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/App/RunCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Config/LegacyCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018-2021 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Dashboard/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Dashboard/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
4 changes: 2 additions & 2 deletions src/SeqCli/Cli/Commands/Dashboard/RenderCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -181,7 +181,7 @@ static string BuildSqlQuery(ChartQueryPart query, DateTime rangeStart, DateTime
foreach (var measurement in query.Measurements)
sql.Select(measurement.Value, measurement.Label);

sql.FromStream = true;
sql.From = query.DataSource.ToString().ToLowerInvariant();

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because DataSource is a value type (enum), this will fall back to Stream by default for older API versions that don't supply a data source explicitly (these only support stream anyway).


sql.Where($"@Timestamp >= DateTime('{rangeStart:O}')");
sql.Where($"@Timestamp < DateTime('{rangeEnd:O}')");
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Events/DeleteCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2026 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/ExpressionIndex/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/CreateCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Feed/RemoveCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
1 change: 0 additions & 1 deletion src/SeqCli/Cli/Commands/Forwarder/InstallCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.AccessControl;
using System.Threading.Tasks;
using SeqCli.Cli.Features;
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/HelpCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Index/ListCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/Index/SuppressCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/IngestCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/LogCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/PrintCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Datalust Pty Ltd and Contributors
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion src/SeqCli/Cli/Commands/QueryCommand.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2018 Datalust Pty Ltd
// Copyright © Datalust and contributors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
62 changes: 49 additions & 13 deletions src/SeqCli/Cli/Commands/RetentionPolicy/CreateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

using System;
using System.Threading.Tasks;
using Seq.Api.Model.Shared;
using Seq.Api.Model.Signals;
using SeqCli.Api;
using SeqCli.Cli.Features;
Expand All @@ -26,15 +27,16 @@
namespace SeqCli.Cli.Commands.RetentionPolicy;

[Command("retention", "create", "Create a retention policy",
Example = "seqcli retention create --after 30d --delete-all-events")]
Example = "seqcli retention create --after 30d --data-source stream --delete-all")]
class CreateCommand : Command
{
readonly ConnectionFeature _connection;
readonly OutputFormatFeature _output;
readonly StoragePathFeature _storagePath;

string? _afterDuration;
bool _deleteAllEvents;
bool _deleteAll;
string? _dataSource;
string? _deleteMatchingSignal;

public CreateCommand()
Expand All @@ -43,21 +45,36 @@ public CreateCommand()
"after=",
"A duration after which the policy will delete events, e.g. `7d`",
v => _afterDuration = ArgumentString.Normalize(v));

Options.Add(
"delete-all-events",
"The policy should delete all events (currently the only supported option)",
_ => _deleteAllEvents = true);
"data-source=",
"The data source to delete records from (`stream` for log events and traces, or `series` for metrics); defaults to `stream`",
v => _dataSource = ArgumentString.Normalize(v));

Options.Add(
"delete-all",
"The policy should delete all records in the target data source after the specified duration",
_ => _deleteAll = true);

Options.Add(
"delete=",
"Stream incoming events to this app instance as they're ingested; optionally accepts a signal expression limiting which events should be streamed",
"A signal expression identifying events that should be deleted; not supported by the `series` data source",
s =>
{
_deleteMatchingSignal = s;
}
);


// Maintained for compatibility in Seq 2026.x; intended to be retired in 2027.
Options.Add(
"delete-all-events",
"The policy should delete all events from `stream`",
_ =>
{
_deleteAll = true;
_dataSource = null;
}, hidden: true);

_connection = Enable<ConnectionFeature>();
_output = Enable<OutputFormatFeature>();
_storagePath = Enable<StoragePathFeature>();
Expand All @@ -71,19 +88,19 @@ protected override async Task<int> Run()
SignalExpressionPart? removedSignalExpression;

// Exactly one of `delete-all-events` or `delete` must be specified
if (_deleteAllEvents)
if (_deleteAll)
{
if (!string.IsNullOrEmpty(_deleteMatchingSignal))
{
Log.Error("Only one of the `delete-all-events` or `delete` options may be specified");
Log.Error("Only one of the `--delete-all` or `--delete` options may be specified");
return 1;
}

removedSignalExpression = null;
}
else if (string.IsNullOrEmpty(_deleteMatchingSignal))
{
Log.Error("Either the `delete-all-events` or `delete` options must be specified");
Log.Error("One of either the `--delete-all` or `--delete` options must be specified");
return 1;
}
else
Expand All @@ -93,15 +110,34 @@ protected override async Task<int> Run()

if (_afterDuration == null)
{
Log.Error("A duration must be specified using `after`");
Log.Error("A duration must be specified using `--after`");
return 1;
}

var duration = DurationMoniker.ToTimeSpan(_afterDuration);


if (_dataSource == null)
{
Log.Error("Use `--data-source` to specify `stream` or `series` as the retention target");
return 1;
}

if (!Enum.TryParse(_dataSource, out DataSource dataSource))
{
Log.Error("The `--data-source` option supports `stream` and `series`");
return 1;
}

if (removedSignalExpression != null && dataSource != DataSource.Stream)
{
Log.Error("The `--delete` option is only valid when `--data-source` is `stream`");
return 1;
}

var policy = await connection.RetentionPolicies.TemplateAsync();
policy.RetentionTime = duration;
policy.RemovedSignalExpression = removedSignalExpression;
policy.DataSource = dataSource;

policy = await connection.RetentionPolicies.AddAsync(policy);

Expand Down
Loading
Loading