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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Change log

## 09/05/2025

- add support for container-scoped user delegation SAS (skip account-level container enumeration to prevent 403 AuthorizationFailure)
- parse and expose user delegation key parameters (skt, ske, sktid, skoid) in `SasParameters`
- adjust `BlobManager.Connect` / `EnumerateContainers` logic to validate single container when using user delegation SAS

## 08/20/2025

- fix deprecated GitHub Actions: upgrade upload-artifact from v1 to v4 and checkout from v1 to v4
Expand Down
220 changes: 110 additions & 110 deletions docs/kustoQuickStart.md

Large diffs are not rendered by default.

Binary file added docs/media/azure.portal.5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions kusto/functions/sflogs/base/ExtendTableRetentionByDays.csl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.create-or-alter function with (docstring = "[tableName:string] - Name of the table to modify retention for, [daysToExtend:int] - Number of days to extend retention from current date. Usage: sflogs.base.ExtendTableRetentionByDays('MyTable', 30)", folder = "sflogs/base")
ExtendTableRetentionByDays(tableName:string, daysToExtend:int) {
let currentTime = now();
let retentionDate = currentTime + (daysToExtend * 1d);
// Generate the management command
print strcat(
".alter table ['", tableName, "'] policy retention ",
"```{\"SoftDeletePeriod\": \"",
format_timespan(retentionDate - currentTime, "d.hh:mm:ss"),
"\", \"Recoverability\": \"Enabled\"}```"
)
}
11 changes: 11 additions & 0 deletions kusto/functions/sflogs/base/ExtendTableRetentionToDate.csl
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.create-or-alter function with (docstring = "[tableName:string] - Name of the table to modify retention for, [extensionDate:datetime] - Specific date until which to retain data. Usage: sflogs.base.ExtendTableRetentionToDate('MyTable', datetime('2025-12-31'))", folder = "sflogs/base")
ExtendTableRetentionToDate(tableName:string, extensionDate:datetime) {
let currentTime = now();
// Generate the management command
print strcat(
".alter table ['", tableName, "'] policy retention ",
"```{\"SoftDeletePeriod\": \"",
format_timespan(extensionDate - currentTime, "d.hh:mm:ss"),
"\", \"Recoverability\": \"Enabled\"}```"
)
}
8 changes: 8 additions & 0 deletions kusto/functions/sflogs/base/GetTableRetentionCommand.csl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.create-or-alter function with (docstring = "[tableName:string] - Name of the table to query retention policy for. Returns JSON with key retention fields. Usage: sflogs.base.GetTableRetentionCommand('MyTable')", folder = "sflogs/base")
GetTableRetentionCommand(tableName:string) {
// Generate KQL query that returns JSON with essential retention info
print KQLQuery = strcat(
".show table ['", tableName, "'] details | project MinExtentsCreationTime, RetentionPolicy;\n"
),
Note = "Copy and run the KQLQuery to get response with Creation and Expiration Days. Use ExtendTableRetentionToDate or ExtendTableRetentionByDays to modify"
}
2 changes: 2 additions & 0 deletions kusto/functions/sflogs/errors/TraceFalsePositiveTabular.csl
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
// add false positive signatures here using one of the provided functions in format issue description, string pattern, string pattern
// use *Matches (regex) only when needed as it is remarkably slower
| invoke TextContains("normal ctrl-c process exit", "terminated with exit code 3221225786")
| invoke TextContains("error should be ignored", "ignoring error")
| invoke TypeAndTextIMatches("normal application / process exit by service fabric abort", "Hosting", "exitcode\\s?=?\\s?7148")
| invoke TypeAndTextIMatches("normal application / process exit by service fabric deactivate", "Hosting", "ExitCode\\s?=?\\s?7147")
| invoke TextContains("normal connection close", "FABRIC_E_CONNECTION_CLOSED_BY_REMOTE_END")
Expand Down Expand Up @@ -139,4 +140,5 @@
| invoke TypeAndTextContains("only issue if using docker.","Hosting.DockerProcessManager","StopDockerNtService: ShutdownDockerService() returned with ErrorCode=FABRIC_E_SERVICE_DOES_NOT_EXIST.")
| invoke TypeAndTextContains("only issue if using docker.","Hosting.ContainerHelper","Container Log Root not found at:")
| invoke TypeAndTextContains("only issue if using docker.","Hosting.ContainerActivator","OnContainerServiceStarted: ErrorCode=FABRIC_E_SERVICE_DOES_NOT_EXIST")
| invoke TypeAndTextContains("common warning that usually is noise","ASYNC_REQUEST","An Async request was failed")
}
3 changes: 2 additions & 1 deletion kusto/functions/sflogs/errors/TraceKnownIssue.csl
Original file line number Diff line number Diff line change
Expand Up @@ -243,5 +243,6 @@
TypeContains(T, "possible FM deadlock issue. queue full.","FM.QueueFull_Failure"),
TypeAndTextContains(T, "customer application code issue.", "Api.Finish", "Error = 2148734227"),
TypeAndTextContains(T, "certificate revoked", "Transport.SecurityContext", "FABRIC_E_CONNECTION_DENIED: 0x80092010"),
TypeAndTextContains(T, "possible issue if file:StartStopNode.txt is present on node. file will cause node to be in a Status == Down and HealthState == Error", "TestabilityComponent.NodeTestabilitySubsystem", "Killing node on command RestartNode")
TypeAndTextContains(T, "possible issue if file:StartStopNode.txt is present on node. file will cause node to be in a Status == Down and HealthState == Error", "TestabilityComponent.NodeTestabilitySubsystem", "Killing node on command RestartNode"),
TypeAndTextContains(T, "client application initiated an abort", "Transport.Connection", "0x80072745")
}
Loading
Loading