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 .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.37.0"
".": "0.38.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 101
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-fc4a441d80d9a26574ef8af390a0c76265f5d4190daf90a04b6b353b128bbd97.yml
openapi_spec_hash: 192987649d3797c3a80e6ef201667b64
config_hash: 8af430e19f4af86c05f2987241cae72f
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-9462b3d8f055f8bda06da65583f5aa09a17d35254c5983796d8e84ebb3c62c47.yml
openapi_spec_hash: 1914dd35b8e0e5a21ccec91eac2a616d
config_hash: c6b88eea9a15840f26130eb8ed3b42a0
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 0.38.0 (2026-02-25)

Full Changelog: [v0.37.0...v0.38.0](https://github.com/kernel/kernel-go-sdk/compare/v0.37.0...v0.38.0)

### Features

* Neil/kernel 1029 past session search ([04750c0](https://github.com/kernel/kernel-go-sdk/commit/04750c05fd4b0491f34d65cf8e003a7ee38537b5))


### Chores

* **internal:** move custom custom `json` tags to `api` ([a35c88c](https://github.com/kernel/kernel-go-sdk/commit/a35c88ce383ecf7a2a98b303837948cd3edd3d39))

## 0.37.0 (2026-02-23)

Full Changelog: [v0.36.1...v0.37.0](https://github.com/kernel/kernel-go-sdk/compare/v0.36.1...v0.37.0)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/kernel/kernel-go-sdk@v0.37.0'
go get -u 'github.com/kernel/kernel-go-sdk@v0.38.0'
```

<!-- x-release-please-end -->
Expand Down
14 changes: 7 additions & 7 deletions app.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,19 @@ func (r *AppService) ListAutoPaging(ctx context.Context, query AppListParams, op
// Summary of an application version.
type AppListResponse struct {
// Unique identifier for the app version
ID string `json:"id,required"`
ID string `json:"id" api:"required"`
// List of actions available on the app
Actions []shared.AppAction `json:"actions,required"`
Actions []shared.AppAction `json:"actions" api:"required"`
// Name of the application
AppName string `json:"app_name,required"`
AppName string `json:"app_name" api:"required"`
// Deployment ID
Deployment string `json:"deployment,required"`
Deployment string `json:"deployment" api:"required"`
// Environment variables configured for this app version
EnvVars map[string]string `json:"env_vars,required"`
EnvVars map[string]string `json:"env_vars" api:"required"`
// Deployment region code
Region constant.AwsUsEast1a `json:"region,required"`
Region constant.AwsUsEast1a `json:"region" api:"required"`
// Version label for the application
Version string `json:"version,required"`
Version string `json:"version" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Expand Down
110 changes: 55 additions & 55 deletions authconnection.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ func (r *AuthConnectionService) Submit(ctx context.Context, id string, body Auth
// Response from starting a login flow
type LoginResponse struct {
// Auth connection ID
ID string `json:"id,required"`
ID string `json:"id" api:"required"`
// When the login flow expires
FlowExpiresAt time.Time `json:"flow_expires_at,required" format:"date-time"`
FlowExpiresAt time.Time `json:"flow_expires_at" api:"required" format:"date-time"`
// Type of login flow started
//
// Any of "LOGIN", "REAUTH".
FlowType LoginResponseFlowType `json:"flow_type,required"`
FlowType LoginResponseFlowType `json:"flow_type" api:"required"`
// URL to redirect user to for login
HostedURL string `json:"hosted_url,required" format:"uri"`
HostedURL string `json:"hosted_url" api:"required" format:"uri"`
// One-time code for handoff (internal use)
HandoffCode string `json:"handoff_code"`
// Browser live view URL for watching the login flow
Expand Down Expand Up @@ -200,18 +200,18 @@ const (
// recent login flow and are null when no flow has been initiated.
type ManagedAuth struct {
// Unique identifier for the auth connection
ID string `json:"id,required"`
ID string `json:"id" api:"required"`
// Target domain for authentication
Domain string `json:"domain,required"`
Domain string `json:"domain" api:"required"`
// Name of the profile associated with this auth connection
ProfileName string `json:"profile_name,required"`
ProfileName string `json:"profile_name" api:"required"`
// Whether credentials are saved after every successful login. One-time codes
// (TOTP, SMS, etc.) are not saved.
SaveCredentials bool `json:"save_credentials,required"`
SaveCredentials bool `json:"save_credentials" api:"required"`
// Current authentication status of the managed profile
//
// Any of "AUTHENTICATED", "NEEDS_AUTH".
Status ManagedAuthStatus `json:"status,required"`
Status ManagedAuthStatus `json:"status" api:"required"`
// Additional domains that are valid for this auth flow (besides the primary
// domain). Useful when login pages redirect to different domains.
//
Expand Down Expand Up @@ -242,55 +242,55 @@ type ManagedAuth struct {
// - { provider, auto: true } for external provider domain lookup
Credential ManagedAuthCredential `json:"credential"`
// Fields awaiting input (present when flow_step=awaiting_input)
DiscoveredFields []ManagedAuthDiscoveredField `json:"discovered_fields,nullable"`
DiscoveredFields []ManagedAuthDiscoveredField `json:"discovered_fields" api:"nullable"`
// Machine-readable error code (present when flow_status=failed)
ErrorCode string `json:"error_code,nullable"`
ErrorCode string `json:"error_code" api:"nullable"`
// Error message (present when flow_status=failed)
ErrorMessage string `json:"error_message,nullable"`
ErrorMessage string `json:"error_message" api:"nullable"`
// Instructions for external action (present when
// flow_step=awaiting_external_action)
ExternalActionMessage string `json:"external_action_message,nullable"`
ExternalActionMessage string `json:"external_action_message" api:"nullable"`
// When the current flow expires (null when no flow in progress)
FlowExpiresAt time.Time `json:"flow_expires_at,nullable" format:"date-time"`
FlowExpiresAt time.Time `json:"flow_expires_at" api:"nullable" format:"date-time"`
// Current flow status (null when no flow in progress)
//
// Any of "IN_PROGRESS", "SUCCESS", "FAILED", "EXPIRED", "CANCELED".
FlowStatus ManagedAuthFlowStatus `json:"flow_status,nullable"`
FlowStatus ManagedAuthFlowStatus `json:"flow_status" api:"nullable"`
// Current step in the flow (null when no flow in progress)
//
// Any of "DISCOVERING", "AWAITING_INPUT", "AWAITING_EXTERNAL_ACTION",
// "SUBMITTING", "COMPLETED".
FlowStep ManagedAuthFlowStep `json:"flow_step,nullable"`
FlowStep ManagedAuthFlowStep `json:"flow_step" api:"nullable"`
// Type of the current flow (null when no flow in progress)
//
// Any of "LOGIN", "REAUTH".
FlowType ManagedAuthFlowType `json:"flow_type,nullable"`
FlowType ManagedAuthFlowType `json:"flow_type" api:"nullable"`
// Interval in seconds between automatic health checks. When set, the system
// periodically verifies the authentication status and triggers re-authentication
// if needed. Maximum is 86400 (24 hours). Default is 3600 (1 hour). The minimum
// depends on your plan: Enterprise: 300 (5 minutes), Startup: 1200 (20 minutes),
// Hobbyist: 3600 (1 hour).
HealthCheckInterval int64 `json:"health_check_interval,nullable"`
HealthCheckInterval int64 `json:"health_check_interval" api:"nullable"`
// URL to redirect user to for hosted login (present when flow in progress)
HostedURL string `json:"hosted_url,nullable" format:"uri"`
HostedURL string `json:"hosted_url" api:"nullable" format:"uri"`
// When the profile was last successfully authenticated
LastAuthAt time.Time `json:"last_auth_at" format:"date-time"`
// Browser live view URL for debugging (present when flow in progress)
LiveViewURL string `json:"live_view_url,nullable" format:"uri"`
LiveViewURL string `json:"live_view_url" api:"nullable" format:"uri"`
// MFA method options (present when flow_step=awaiting_input and MFA selection
// required)
MfaOptions []ManagedAuthMfaOption `json:"mfa_options,nullable"`
MfaOptions []ManagedAuthMfaOption `json:"mfa_options" api:"nullable"`
// SSO buttons available (present when flow_step=awaiting_input)
PendingSSOButtons []ManagedAuthPendingSSOButton `json:"pending_sso_buttons,nullable"`
PendingSSOButtons []ManagedAuthPendingSSOButton `json:"pending_sso_buttons" api:"nullable"`
// URL where the browser landed after successful login
PostLoginURL string `json:"post_login_url" format:"uri"`
// ID of the proxy associated with this connection, if any.
ProxyID string `json:"proxy_id"`
// SSO provider being used (e.g., google, github, microsoft)
SSOProvider string `json:"sso_provider,nullable"`
SSOProvider string `json:"sso_provider" api:"nullable"`
// Visible error message from the website (e.g., 'Incorrect password'). Present
// when the website displays an error during login.
WebsiteError string `json:"website_error,nullable"`
WebsiteError string `json:"website_error" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Expand Down Expand Up @@ -373,20 +373,20 @@ func (r *ManagedAuthCredential) UnmarshalJSON(data []byte) error {
// A discovered form field
type ManagedAuthDiscoveredField struct {
// Field label
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// Field name
Name string `json:"name,required"`
Name string `json:"name" api:"required"`
// CSS selector for the field
Selector string `json:"selector,required"`
Selector string `json:"selector" api:"required"`
// Field type
//
// Any of "text", "email", "password", "tel", "number", "url", "code", "totp".
Type string `json:"type,required"`
Type string `json:"type" api:"required"`
// If this field is associated with an MFA option, the type of that option (e.g.,
// password field linked to "Enter password" option)
//
// Any of "sms", "call", "email", "totp", "push", "password".
LinkedMfaType string `json:"linked_mfa_type,nullable"`
LinkedMfaType string `json:"linked_mfa_type" api:"nullable"`
// Field placeholder
Placeholder string `json:"placeholder"`
// Whether field is required
Expand Down Expand Up @@ -444,15 +444,15 @@ const (
// An MFA method option for verification
type ManagedAuthMfaOption struct {
// The visible option text
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// The MFA delivery method type (includes password for auth method selection pages)
//
// Any of "sms", "call", "email", "totp", "push", "password".
Type string `json:"type,required"`
Type string `json:"type" api:"required"`
// Additional instructions from the site
Description string `json:"description,nullable"`
Description string `json:"description" api:"nullable"`
// The masked destination (phone/email) if shown
Target string `json:"target,nullable"`
Target string `json:"target" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Label respjson.Field
Expand All @@ -473,11 +473,11 @@ func (r *ManagedAuthMfaOption) UnmarshalJSON(data []byte) error {
// An SSO button for signing in with an external identity provider
type ManagedAuthPendingSSOButton struct {
// Visible button text
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// Identity provider name
Provider string `json:"provider,required"`
Provider string `json:"provider" api:"required"`
// XPath selector for the button
Selector string `json:"selector,required"`
Selector string `json:"selector" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Label respjson.Field
Expand All @@ -499,9 +499,9 @@ func (r *ManagedAuthPendingSSOButton) UnmarshalJSON(data []byte) error {
// The properties Domain, ProfileName are required.
type ManagedAuthCreateRequestParam struct {
// Domain for authentication
Domain string `json:"domain,required"`
Domain string `json:"domain" api:"required"`
// Name of the profile to manage authentication for
ProfileName string `json:"profile_name,required"`
ProfileName string `json:"profile_name" api:"required"`
// Interval in seconds between automatic health checks. When set, the system
// periodically verifies the authentication status and triggers re-authentication
// if needed. Maximum is 86400 (24 hours). Default is 3600 (1 hour). The minimum
Expand Down Expand Up @@ -617,7 +617,7 @@ func (r *SubmitFieldsRequestParam) UnmarshalJSON(data []byte) error {
// Response from submitting field values
type SubmitFieldsResponse struct {
// Whether the submission was accepted for processing
Accepted bool `json:"accepted,required"`
Accepted bool `json:"accepted" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Accepted respjson.Field
Expand Down Expand Up @@ -748,18 +748,18 @@ func (r *AuthConnectionFollowResponseUnion) UnmarshalJSON(data []byte) error {
// An event representing the current state of a managed auth flow.
type AuthConnectionFollowResponseManagedAuthState struct {
// Event type identifier (always "managed_auth_state").
Event constant.ManagedAuthState `json:"event,required"`
Event constant.ManagedAuthState `json:"event" api:"required"`
// Current flow status.
//
// Any of "IN_PROGRESS", "SUCCESS", "FAILED", "EXPIRED", "CANCELED".
FlowStatus string `json:"flow_status,required"`
FlowStatus string `json:"flow_status" api:"required"`
// Current step in the flow.
//
// Any of "DISCOVERING", "AWAITING_INPUT", "AWAITING_EXTERNAL_ACTION",
// "SUBMITTING", "COMPLETED".
FlowStep string `json:"flow_step,required"`
FlowStep string `json:"flow_step" api:"required"`
// Time the state was reported.
Timestamp time.Time `json:"timestamp,required" format:"date-time"`
Timestamp time.Time `json:"timestamp" api:"required" format:"date-time"`
// Fields awaiting input (present when flow_step=AWAITING_INPUT).
DiscoveredFields []AuthConnectionFollowResponseManagedAuthStateDiscoveredField `json:"discovered_fields"`
// Machine-readable error code (present when flow_status=FAILED).
Expand Down Expand Up @@ -818,20 +818,20 @@ func (r *AuthConnectionFollowResponseManagedAuthState) UnmarshalJSON(data []byte
// A discovered form field
type AuthConnectionFollowResponseManagedAuthStateDiscoveredField struct {
// Field label
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// Field name
Name string `json:"name,required"`
Name string `json:"name" api:"required"`
// CSS selector for the field
Selector string `json:"selector,required"`
Selector string `json:"selector" api:"required"`
// Field type
//
// Any of "text", "email", "password", "tel", "number", "url", "code", "totp".
Type string `json:"type,required"`
Type string `json:"type" api:"required"`
// If this field is associated with an MFA option, the type of that option (e.g.,
// password field linked to "Enter password" option)
//
// Any of "sms", "call", "email", "totp", "push", "password".
LinkedMfaType string `json:"linked_mfa_type,nullable"`
LinkedMfaType string `json:"linked_mfa_type" api:"nullable"`
// Field placeholder
Placeholder string `json:"placeholder"`
// Whether field is required
Expand Down Expand Up @@ -861,15 +861,15 @@ func (r *AuthConnectionFollowResponseManagedAuthStateDiscoveredField) UnmarshalJ
// An MFA method option for verification
type AuthConnectionFollowResponseManagedAuthStateMfaOption struct {
// The visible option text
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// The MFA delivery method type (includes password for auth method selection pages)
//
// Any of "sms", "call", "email", "totp", "push", "password".
Type string `json:"type,required"`
Type string `json:"type" api:"required"`
// Additional instructions from the site
Description string `json:"description,nullable"`
Description string `json:"description" api:"nullable"`
// The masked destination (phone/email) if shown
Target string `json:"target,nullable"`
Target string `json:"target" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Label respjson.Field
Expand All @@ -890,11 +890,11 @@ func (r *AuthConnectionFollowResponseManagedAuthStateMfaOption) UnmarshalJSON(da
// An SSO button for signing in with an external identity provider
type AuthConnectionFollowResponseManagedAuthStatePendingSSOButton struct {
// Visible button text
Label string `json:"label,required"`
Label string `json:"label" api:"required"`
// Identity provider name
Provider string `json:"provider,required"`
Provider string `json:"provider" api:"required"`
// XPath selector for the button
Selector string `json:"selector,required"`
Selector string `json:"selector" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Label respjson.Field
Expand Down
Loading