Cleanup Synapse+Spark Logic (#813)

This commit is contained in:
Steve Faulkner 2021-05-25 14:46:52 -05:00 committed by GitHub
parent 522fdc69ab
commit e7e15c54b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 46 additions and 6746 deletions

View File

@ -391,16 +391,6 @@ export interface GeospatialConfig {
type: string; type: string;
} }
export interface GatewayDatabaseAccount {
MediaLink: string;
DatabasesLink: string;
MaxMediaStorageUsageInMB: number;
CurrentMediaStorageUsageInMB: number;
EnableMultipleWriteLocations?: boolean;
WritableLocations: RegionEndpoint[];
ReadableLocations: RegionEndpoint[];
}
export interface RegionEndpoint { export interface RegionEndpoint {
name: string; name: string;
documentAccountEndpoint: string; documentAccountEndpoint: string;
@ -421,13 +411,6 @@ export interface AccountKeys {
secondaryReadonlyMasterKey: string; secondaryReadonlyMasterKey: string;
} }
export interface AfecFeature {
id: string;
name: string;
properties: { state: string };
type: string;
}
export interface OperationStatus { export interface OperationStatus {
status: string; status: string;
id?: string; id?: string;
@ -507,91 +490,6 @@ export interface MongoParameters extends RpParameters {
analyticalStorageTtl?: number; analyticalStorageTtl?: number;
} }
export interface SparkClusterLibrary {
name: string;
}
export interface Library extends SparkClusterLibrary {
properties: {
kind: "Jar";
source: {
kind: "HttpsUri";
uri: string;
libraryFileName: string;
};
};
}
export interface LibraryFeedResponse {
value: Library[];
}
export interface ArmResource {
id: string;
location: string;
name: string;
type: string;
tags: { [key: string]: string };
}
export interface ArcadiaWorkspaceIdentity {
type: string;
principalId: string;
tenantId: string;
}
export interface ArcadiaWorkspaceProperties {
managedResourceGroupName: string;
provisioningState: string;
sqlAdministratorLogin: string;
connectivityEndpoints: {
artifacts: string;
dev: string;
spark: string;
sql: string;
web: string;
};
defaultDataLakeStorage: {
accountUrl: string;
filesystem: string;
};
}
export interface ArcadiaWorkspaceFeedResponse {
value: ArcadiaWorkspace[];
}
export interface ArcadiaWorkspace extends ArmResource {
identity: ArcadiaWorkspaceIdentity;
properties: ArcadiaWorkspaceProperties;
}
export interface SparkPoolFeedResponse {
value: SparkPool[];
}
export interface SparkPoolProperties {
creationDate: string;
sparkVersion: string;
nodeCount: number;
nodeSize: string;
nodeSizeFamily: string;
provisioningState: string;
autoScale: {
enabled: boolean;
minNodeCount: number;
maxNodeCount: number;
};
autoPause: {
enabled: boolean;
delayInMinutes: number;
};
}
export interface SparkPool extends ArmResource {
properties: SparkPoolProperties;
}
export interface MemoryUsageInfo { export interface MemoryUsageInfo {
freeKB: number; freeKB: number;
totalKB: number; totalKB: number;

View File

@ -3,10 +3,8 @@ import { DiffEditorComponent } from "./Controls/DiffEditor/DiffEditorComponent";
import { DynamicListComponent } from "./Controls/DynamicList/DynamicListComponent"; import { DynamicListComponent } from "./Controls/DynamicList/DynamicListComponent";
import { EditorComponent } from "./Controls/Editor/EditorComponent"; import { EditorComponent } from "./Controls/Editor/EditorComponent";
import { JsonEditorComponent } from "./Controls/JsonEditor/JsonEditorComponent"; import { JsonEditorComponent } from "./Controls/JsonEditor/JsonEditorComponent";
import { ThroughputInputComponentAutoPilotV3 } from "./Controls/ThroughputInput/ThroughputInputComponentAutoPilotV3";
ko.components.register("editor", new EditorComponent()); ko.components.register("editor", new EditorComponent());
ko.components.register("json-editor", new JsonEditorComponent()); ko.components.register("json-editor", new JsonEditorComponent());
ko.components.register("diff-editor", new DiffEditorComponent()); ko.components.register("diff-editor", new DiffEditorComponent());
ko.components.register("dynamic-list", DynamicListComponent); ko.components.register("dynamic-list", DynamicListComponent);
ko.components.register("throughput-input-autopilot-v3", ThroughputInputComponentAutoPilotV3);

View File

@ -1,142 +0,0 @@
import { DefaultButton, IButtonStyles, IContextualMenuItem, IContextualMenuProps } from "@fluentui/react";
import * as React from "react";
import { getErrorMessage } from "../../../Common/ErrorHandlingUtils";
import * as Logger from "../../../Common/Logger";
import { ArcadiaWorkspace, SparkPool } from "../../../Contracts/DataModels";
export interface ArcadiaMenuPickerProps {
selectText?: string;
disableSubmenu?: boolean;
selectedSparkPool: string;
workspaces: ArcadiaWorkspaceItem[];
onSparkPoolSelect: (
e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,
item: IContextualMenuItem
) => boolean | void;
onCreateNewWorkspaceClicked: () => boolean | void;
onCreateNewSparkPoolClicked: (workspaceResourceId: string) => boolean | void;
}
interface ArcadiaMenuPickerStates {
selectedSparkPool: string;
}
export interface ArcadiaWorkspaceItem extends ArcadiaWorkspace {
sparkPools: SparkPool[];
}
export class ArcadiaMenuPicker extends React.Component<ArcadiaMenuPickerProps, ArcadiaMenuPickerStates> {
constructor(props: ArcadiaMenuPickerProps) {
super(props);
this.state = {
selectedSparkPool: props.selectedSparkPool,
};
}
private _onSparkPoolClicked = (
e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,
item: IContextualMenuItem
): boolean | void => {
try {
this.props.onSparkPoolSelect(e, item);
this.setState({
selectedSparkPool: item.text,
});
} catch (error) {
Logger.logError(getErrorMessage(error), "ArcadiaMenuPicker/_onSparkPoolClicked");
throw error;
}
};
private _onCreateNewWorkspaceClicked = (
e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,
item: IContextualMenuItem
): boolean | void => {
this.props.onCreateNewWorkspaceClicked();
};
private _onCreateNewSparkPoolClicked = (
e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,
item: IContextualMenuItem
): boolean | void => {
this.props.onCreateNewSparkPoolClicked(item.key);
};
public render() {
const { workspaces } = this.props;
let workspaceMenuItems: IContextualMenuItem[] = workspaces.map((workspace) => {
let sparkPoolsMenuProps: IContextualMenuProps = {
items: workspace.sparkPools.map(
(sparkpool): IContextualMenuItem => ({
key: sparkpool.id,
text: sparkpool.name,
onClick: this._onSparkPoolClicked,
})
),
};
if (!sparkPoolsMenuProps.items.length) {
sparkPoolsMenuProps.items.push({
key: workspace.id,
text: "Create new spark pool",
onClick: this._onCreateNewSparkPoolClicked,
});
}
return {
key: workspace.id,
text: workspace.name,
subMenuProps: this.props.disableSubmenu ? undefined : sparkPoolsMenuProps,
};
});
if (!workspaceMenuItems.length) {
workspaceMenuItems.push({
key: "create_workspace",
text: "Create new workspace",
onClick: this._onCreateNewWorkspaceClicked,
});
}
const dropdownStyle: IButtonStyles = {
root: {
backgroundColor: "transparent",
margin: "auto 5px",
padding: "0",
border: "0",
},
rootHovered: {
backgroundColor: "transparent",
},
rootChecked: {
backgroundColor: "transparent",
},
rootFocused: {
backgroundColor: "transparent",
},
rootExpanded: {
backgroundColor: "transparent",
},
flexContainer: {
height: "30px",
border: "1px solid #a6a6a6",
padding: "0 8px",
},
label: {
fontWeight: "400",
fontSize: "12px",
},
};
return (
<DefaultButton
text={this.state.selectedSparkPool || this.props.selectText || "Select a Spark pool"}
persistMenu={true}
className="arcadia-menu-picker"
menuProps={{
items: workspaceMenuItems,
}}
styles={dropdownStyle}
/>
);
}
}

View File

@ -1,15 +1,12 @@
import * as StringUtils from "../../../Utils/StringUtils";
import { KeyCodes } from "../../../Common/Constants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import { Action, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants";
import CollapseChevronDownIcon from "../../../../images/QueryBuilder/CollapseChevronDown_16x.png";
/** /**
* React component for Command button component. * React component for Command button component.
*/ */
import * as React from "react"; import * as React from "react";
import { ArcadiaMenuPickerProps } from "../Arcadia/ArcadiaMenuPicker"; import CollapseChevronDownIcon from "../../../../images/QueryBuilder/CollapseChevronDown_16x.png";
import { KeyCodes } from "../../../Common/Constants";
import { Action, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import * as StringUtils from "../../../Utils/StringUtils";
/** /**
* Options for this component * Options for this component
@ -114,15 +111,6 @@ export interface CommandButtonComponentProps {
* Aria-label for the button * Aria-label for the button
*/ */
ariaLabel: string; ariaLabel: string;
//TODO: generalize customized command bar
/**
* If set to true, will render arcadia picker
*/
isArcadiaPicker?: boolean;
/**
* props to render arcadia picker
*/
arcadiaProps?: ArcadiaMenuPickerProps;
} }
export class CommandButtonComponent extends React.Component<CommandButtonComponentProps> { export class CommandButtonComponent extends React.Component<CommandButtonComponentProps> {

View File

@ -1,308 +0,0 @@
import * as ko from "knockout";
import { KeyCodes } from "../../../Common/Constants";
import * as ViewModels from "../../../Contracts/ViewModels";
import { FreeTierLimits } from "../../../Shared/Constants";
import { Action, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import * as AutoPilotUtils from "../../../Utils/AutoPilotUtils";
import { WaitsForTemplateViewModel } from "../../WaitsForTemplateViewModel";
import ThroughputInputComponentAutoscaleV3 from "./ThroughputInputComponentAutoscaleV3.html";
/**
* Throughput Input:
*
* Creates a set of controls to input, sanitize and increase/decrease throughput
*
* How to use in your markup:
* <throughput-input params="{ value: anObservableToHoldTheValue, minimum: anObservableWithMinimum, maximum: anObservableWithMaximum }">
* </throughput-input>
*
*/
/**
* Parameters for this component
*/
export interface ThroughputInputParams {
/**
* Callback triggered when the template is bound to the component (for testing purposes)
*/
onTemplateReady?: () => void;
/**
* Observable to bind the Throughput value to
*/
value: ViewModels.Editable<number>;
/**
* Text to use as id for testing
*/
testId: string;
/**
* Text to use as aria-label
*/
ariaLabel?: ko.Observable<string>;
/**
* Minimum value in the range
*/
minimum: ko.Observable<number>;
/**
* Maximum value in the range
*/
maximum: ko.Observable<number>;
/**
* Step value for increase/decrease
*/
step?: number;
/**
* Observable to bind the Throughput enabled status
*/
isEnabled?: ko.Observable<boolean>;
/**
* Should show pricing controls
*/
costsVisible: ko.Observable<boolean>;
/**
* RU price
*/
requestUnitsUsageCost: ko.Computed<string>; // Our code assigns to ko.Computed, but unit test assigns to ko.Observable
/**
* State of the spending acknowledge checkbox
*/
spendAckChecked?: ko.Observable<boolean>;
/**
* id of the spending acknowledge checkbox
*/
spendAckId?: ko.Observable<string>;
/**
* spending acknowledge text
*/
spendAckText?: ko.Observable<string>;
/**
* Show spending acknowledge controls
*/
spendAckVisible?: ko.Observable<boolean>;
/**
* Display * to the left of the label
*/
showAsMandatory: boolean;
/**
* If true, it will display a text to prompt users to use unlimited collections to go beyond max for fixed
*/
isFixed: boolean;
/**
* Label of the provisioned throughut control
*/
label: ko.Observable<string>;
/**
* Text of the info bubble for provisioned throughut control
*/
infoBubbleText?: ko.Observable<string>;
/**
* Computed value that decides if value can exceed maximum allowable value
*/
canExceedMaximumValue?: ko.Computed<boolean>;
/**
* CSS classes to apply on input element
*/
cssClass?: string;
isAutoPilotSelected: ko.Observable<boolean>;
throughputAutoPilotRadioId: string;
throughputProvisionedRadioId: string;
throughputModeRadioName: string;
maxAutoPilotThroughputSet: ViewModels.Editable<number>;
autoPilotUsageCost: ko.Computed<string>;
overrideWithAutoPilotSettings: ko.Observable<boolean>;
overrideWithProvisionedThroughputSettings: ko.Observable<boolean>;
freeTierExceedThroughputTooltip?: ko.Observable<string>;
freeTierExceedThroughputWarning?: ko.Observable<string>;
}
export class ThroughputInputViewModel extends WaitsForTemplateViewModel {
public ariaLabel: ko.Observable<string>;
public canExceedMaximumValue: ko.Computed<boolean>;
public step: ko.Computed<number>;
public testId: string;
public value: ViewModels.Editable<number>;
public minimum: ko.Observable<number>;
public maximum: ko.Observable<number>;
public isEnabled: ko.Observable<boolean>;
public cssClass: string;
public decreaseButtonAriaLabel: string;
public increaseButtonAriaLabel: string;
public costsVisible: ko.Observable<boolean>;
public requestUnitsUsageCost: ko.Computed<string>;
public spendAckChecked: ko.Observable<boolean>;
public spendAckId: ko.Observable<string>;
public spendAckText: ko.Observable<string>;
public spendAckVisible: ko.Observable<boolean>;
public showAsMandatory: boolean;
public infoBubbleText: string | ko.Observable<string>;
public label: ko.Observable<string>;
public isFixed: boolean;
public isAutoPilotSelected: ko.Observable<boolean>;
public throughputAutoPilotRadioId: string;
public throughputProvisionedRadioId: string;
public throughputModeRadioName: string;
public maxAutoPilotThroughputSet: ko.Observable<number>;
public autoPilotUsageCost: ko.Computed<string>;
public minAutoPilotThroughput: ko.Observable<number>;
public overrideWithAutoPilotSettings: ko.Observable<boolean>;
public overrideWithProvisionedThroughputSettings: ko.Observable<boolean>;
public isManualThroughputInputFieldRequired: ko.Computed<boolean>;
public isAutoscaleThroughputInputFieldRequired: ko.Computed<boolean>;
public freeTierExceedThroughputTooltip: ko.Observable<string>;
public freeTierExceedThroughputWarning: ko.Observable<string>;
public showFreeTierExceedThroughputTooltip: ko.Computed<boolean>;
public showFreeTierExceedThroughputWarning: ko.Computed<boolean>;
public constructor(options: ThroughputInputParams) {
super();
super.onTemplateReady((isTemplateReady: boolean) => {
if (isTemplateReady && options.onTemplateReady) {
options.onTemplateReady();
}
});
const params: ThroughputInputParams = options;
this.testId = params.testId || "ThroughputValue";
this.ariaLabel = ko.observable((params.ariaLabel && params.ariaLabel()) || "");
this.canExceedMaximumValue = params.canExceedMaximumValue || ko.computed(() => false);
this.isEnabled = params.isEnabled || ko.observable(true);
this.cssClass = params.cssClass || "textfontclr collid migration";
this.minimum = params.minimum;
this.maximum = params.maximum;
this.value = params.value;
this.costsVisible = options.costsVisible;
this.requestUnitsUsageCost = options.requestUnitsUsageCost;
this.spendAckChecked = options.spendAckChecked || ko.observable<boolean>(false);
this.spendAckId = options.spendAckId || ko.observable<string>();
this.spendAckText = options.spendAckText || ko.observable<string>();
this.spendAckVisible = options.spendAckVisible || ko.observable<boolean>(false);
this.showAsMandatory = !!options.showAsMandatory;
this.isFixed = !!options.isFixed;
this.infoBubbleText = options.infoBubbleText || ko.observable<string>();
this.label = options.label || ko.observable<string>();
this.isAutoPilotSelected = options.isAutoPilotSelected || ko.observable<boolean>(false);
this.isAutoPilotSelected.subscribe((value) => {
TelemetryProcessor.trace(Action.ToggleAutoscaleSetting, ActionModifiers.Mark, {
changedSelectedValueTo: value ? ActionModifiers.ToggleAutoscaleOn : ActionModifiers.ToggleAutoscaleOff,
dataExplorerArea: "Scale Tab V1",
});
});
this.throughputAutoPilotRadioId = options.throughputAutoPilotRadioId;
this.throughputProvisionedRadioId = options.throughputProvisionedRadioId;
this.throughputModeRadioName = options.throughputModeRadioName;
this.overrideWithAutoPilotSettings = options.overrideWithAutoPilotSettings || ko.observable<boolean>(false);
this.overrideWithProvisionedThroughputSettings =
options.overrideWithProvisionedThroughputSettings || ko.observable<boolean>(false);
this.maxAutoPilotThroughputSet =
options.maxAutoPilotThroughputSet || ko.observable<number>(AutoPilotUtils.minAutoPilotThroughput);
this.autoPilotUsageCost = options.autoPilotUsageCost;
this.minAutoPilotThroughput = ko.observable<number>(AutoPilotUtils.minAutoPilotThroughput);
this.step = ko.pureComputed(() => {
if (this.isAutoPilotSelected()) {
return AutoPilotUtils.autoPilotIncrementStep;
}
return params.step || ThroughputInputViewModel._defaultStep;
});
this.decreaseButtonAriaLabel = "Decrease throughput by " + this.step().toString();
this.increaseButtonAriaLabel = "Increase throughput by " + this.step().toString();
this.isManualThroughputInputFieldRequired = ko.pureComputed(() => this.isEnabled() && !this.isAutoPilotSelected());
this.isAutoscaleThroughputInputFieldRequired = ko.pureComputed(
() => this.isEnabled() && this.isAutoPilotSelected()
);
this.freeTierExceedThroughputTooltip = options.freeTierExceedThroughputTooltip || ko.observable<string>();
this.freeTierExceedThroughputWarning = options.freeTierExceedThroughputWarning || ko.observable<string>();
this.showFreeTierExceedThroughputTooltip = ko.pureComputed<boolean>(
() => !!this.freeTierExceedThroughputTooltip() && this.value() > FreeTierLimits.RU
);
this.showFreeTierExceedThroughputWarning = ko.pureComputed<boolean>(
() => !!this.freeTierExceedThroughputWarning() && this.value() > FreeTierLimits.RU
);
}
public decreaseThroughput() {
let offerThroughput: number = this._getSanitizedValue();
if (offerThroughput > this.minimum()) {
offerThroughput -= this.step();
if (offerThroughput < this.minimum()) {
offerThroughput = this.minimum();
}
this.value(offerThroughput);
}
}
public increaseThroughput() {
let offerThroughput: number = this._getSanitizedValue();
if (offerThroughput < this.maximum() || this.canExceedMaximumValue()) {
offerThroughput += this.step();
if (offerThroughput > this.maximum() && !this.canExceedMaximumValue()) {
offerThroughput = this.maximum();
}
this.value(offerThroughput);
}
}
public onIncreaseKeyDown = (source: any, event: KeyboardEvent): boolean => {
if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {
this.increaseThroughput();
event.stopPropagation();
return false;
}
return true;
};
public onDecreaseKeyDown = (source: any, event: KeyboardEvent): boolean => {
if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {
this.decreaseThroughput();
event.stopPropagation();
return false;
}
return true;
};
private _getSanitizedValue(): number {
let throughput = this.value();
if (this.isAutoPilotSelected()) {
throughput = this.maxAutoPilotThroughputSet();
}
return isNaN(throughput) ? 0 : Number(throughput);
}
private static _defaultStep: number = 100;
}
export const ThroughputInputComponentAutoPilotV3 = {
viewModel: ThroughputInputViewModel,
template: ThroughputInputComponentAutoscaleV3,
};

View File

@ -1,194 +0,0 @@
<div>
<div>
<p class="pkPadding">
<!-- ko if: showAsMandatory -->
<span class="mandatoryStar">*</span>
<!-- /ko -->
<span data-bind="text: label"></span>
<!-- ko if: infoBubbleText -->
<span class="infoTooltip" role="tooltip" tabindex="0">
<img class="infoImg" src="../../../../images/info-bubble.svg" alt="More information" />
<span data-bind="text: infoBubbleText" class="tooltiptext throughputRuInfo"></span>
</span>
<!-- /ko -->
</p>
</div>
<!-- ko if: !isFixed -->
<div class="throughputModeContainer">
<input
class="throughputModeRadio"
aria-label="Autopilot mode"
type="radio"
role="radio"
tabindex="0"
data-bind="
checked: isAutoPilotSelected,
checkedValue: true,
attr: {
id: throughputAutoPilotRadioId,
name: throughputModeRadioName,
'aria-checked': isAutoPilotSelected() ? 'true' : 'false'
}"
/>
<span
class="throughputModeSpace"
data-bind="
attr: {
for: throughputAutoPilotRadioId
}"
>Autoscale
</span>
<input
class="throughputModeRadio nonFirstRadio"
aria-label="Manual mode"
type="radio"
role="radio"
tabindex="0"
data-bind="
checked: isAutoPilotSelected,
checkedValue: false,
attr: {
id: throughputProvisionedRadioId,
name: throughputModeRadioName,
'aria-checked': !isAutoPilotSelected() ? 'true' : 'false'
}"
/>
<span
class="throughputModeSpace"
data-bind="attr: {
for: throughputProvisionedRadioId
}"
>Manual
</span>
</div>
<!-- /ko -->
<div data-bind="visible: isAutoPilotSelected">
<p>
<span
>Provision maximum RU/s required by this resource. Estimate your required RU/s with
<a target="_blank" href="https://cosmos.azure.com/capacitycalculator/">capacity calculator</a>.</span
>
</p>
<p>
<span>Max RU/s</span>
</p>
<div data-bind="setTemplateReady: true">
<input
data-bind="textInput: overrideWithProvisionedThroughputSettings() ? '' : maxAutoPilotThroughputSet, attr:{
disabled: overrideWithProvisionedThroughputSettings(),
step: step,
'class':'migration collid select-font-size',
min: minAutoPilotThroughput,
'aria-label': 'Max request units per second',
type: isAutoscaleThroughputInputFieldRequired() ? 'number' : 'hidden',
css: {
dirty: maxAutoPilotThroughputSet.editableIsDirty
}
}"
/>
</div>
<p data-bind="visible: overrideWithProvisionedThroughputSettings && !overrideWithProvisionedThroughputSettings()">
<span
data-bind="
html: autoPilotUsageCost"
></span>
</p>
<p
data-bind="visible: costsVisible && overrideWithProvisionedThroughputSettings && !overrideWithProvisionedThroughputSettings()"
>
<span data-bind="html: requestUnitsUsageCost"></span>
</p>
<!-- ko if: spendAckVisible -->
<p class="pkPadding">
<input
type="checkbox"
aria-label="acknowledge spend throughput"
data-bind="
attr: {
title: spendAckText,
id: spendAckId
},
checked: spendAckChecked"
/>
<span data-bind="text: spendAckText, attr: { for: spendAckId }"></span>
</p>
<!-- /ko -->
<!-- ko if: isFixed -->
<p>Choose unlimited storage capacity for more than 10,000 RU/s.</p>
<!-- /ko -->
</div>
<div data-bind="visible: !isAutoPilotSelected()">
<p>
<span
>Estimate your required throughput with
<a target="_blank" href="https://cosmos.azure.com/capacitycalculator/">capacity calculator</a></span
>
</p>
<div class="inputTooltip">
<span
data-bind="text: freeTierExceedThroughputTooltip, visible: showFreeTierExceedThroughputTooltip"
class="inputTooltipText"
></span>
</div>
<div data-bind="setTemplateReady: true">
<input
data-bind="
textInput: overrideWithAutoPilotSettings() ? maxAutoPilotThroughputSet : value,
css: {
dirty: value.editableIsDirty
},
enable: isEnabled,
attr:{
type: isManualThroughputInputFieldRequired() ? 'number' : 'hidden',
'data-test': testId,
'class': cssClass,
step: step,
min: minimum,
max: canExceedMaximumValue() ? null : maximum,
'aria-label': ariaLabel,
disabled: overrideWithAutoPilotSettings(),
required: isManualThroughputInputFieldRequired()
}"
/>
</div>
<div class="freeTierInlineWarning" data-bind="visible: showFreeTierExceedThroughputWarning">
<span class="freeTierWarningIcon"><img src="/warning.svg" alt="Warning" /></span>
<span class="freeTierWarningMessage" data-bind="text: freeTierExceedThroughputWarning"></span>
</div>
<p data-bind="visible: costsVisible">
<span data-bind="html: requestUnitsUsageCost"></span>
</p>
<!-- ko if: spendAckVisible -->
<p class="pkPadding">
<input
type="checkbox"
aria-label="acknowledge spend throughput"
data-bind="
attr: {
title: spendAckText,
id: spendAckId
},
checked: spendAckChecked"
/>
<span data-bind="text: spendAckText, attr: { for: spendAckId }"></span>
</p>
<!-- /ko -->
<!-- ko if: isFixed -->
<p>Choose unlimited storage capacity for more than 10,000 RU/s.</p>
<!-- /ko -->
</div>
</div>

View File

@ -14,7 +14,6 @@ describe("ContainerSampleGenerator", () => {
const createExplorerStub = (database: ViewModels.Database): Explorer => { const createExplorerStub = (database: ViewModels.Database): Explorer => {
const explorerStub = {} as Explorer; const explorerStub = {} as Explorer;
explorerStub.databases = ko.observableArray<ViewModels.Database>([database]); explorerStub.databases = ko.observableArray<ViewModels.Database>([database]);
explorerStub.canExceedMaximumValue = ko.computed<boolean>(() => false);
explorerStub.findDatabaseWithId = () => database; explorerStub.findDatabaseWithId = () => database;
explorerStub.refreshAllDatabases = () => Q.resolve(); explorerStub.refreshAllDatabases = () => Q.resolve();
return explorerStub; return explorerStub;

View File

@ -6,40 +6,34 @@ import _ from "underscore";
import { AuthType } from "../AuthType"; import { AuthType } from "../AuthType";
import { BindingHandlersRegisterer } from "../Bindings/BindingHandlersRegisterer"; import { BindingHandlersRegisterer } from "../Bindings/BindingHandlersRegisterer";
import * as Constants from "../Common/Constants"; import * as Constants from "../Common/Constants";
import { ExplorerMetrics, HttpStatusCodes } from "../Common/Constants"; import { ExplorerMetrics } from "../Common/Constants";
import { readCollection } from "../Common/dataAccess/readCollection"; import { readCollection } from "../Common/dataAccess/readCollection";
import { readDatabases } from "../Common/dataAccess/readDatabases"; import { readDatabases } from "../Common/dataAccess/readDatabases";
import { getErrorMessage, getErrorStack, handleError } from "../Common/ErrorHandlingUtils"; import { getErrorMessage, getErrorStack, handleError } from "../Common/ErrorHandlingUtils";
import * as Logger from "../Common/Logger"; import * as Logger from "../Common/Logger";
import { sendCachedDataMessage } from "../Common/MessageHandler";
import { QueriesClient } from "../Common/QueriesClient"; import { QueriesClient } from "../Common/QueriesClient";
import { Splitter, SplitterBounds, SplitterDirection } from "../Common/Splitter"; import { Splitter, SplitterBounds, SplitterDirection } from "../Common/Splitter";
import { configContext, Platform } from "../ConfigContext"; import { configContext, Platform } from "../ConfigContext";
import * as DataModels from "../Contracts/DataModels"; import * as DataModels from "../Contracts/DataModels";
import { MessageTypes } from "../Contracts/ExplorerContracts";
import * as ViewModels from "../Contracts/ViewModels"; import * as ViewModels from "../Contracts/ViewModels";
import { GitHubClient } from "../GitHub/GitHubClient";
import { GitHubOAuthService } from "../GitHub/GitHubOAuthService"; import { GitHubOAuthService } from "../GitHub/GitHubOAuthService";
import { IGalleryItem, JunoClient } from "../Juno/JunoClient"; import { IGalleryItem, JunoClient } from "../Juno/JunoClient";
import { NotebookWorkspaceManager } from "../NotebookWorkspaceManager/NotebookWorkspaceManager"; import { NotebookWorkspaceManager } from "../NotebookWorkspaceManager/NotebookWorkspaceManager";
import { ResourceProviderClientFactory } from "../ResourceProvider/ResourceProviderClientFactory";
import { RouteHandler } from "../RouteHandlers/RouteHandler"; import { RouteHandler } from "../RouteHandlers/RouteHandler";
import { trackEvent } from "../Shared/appInsights";
import * as SharedConstants from "../Shared/Constants"; import * as SharedConstants from "../Shared/Constants";
import { ExplorerSettings } from "../Shared/ExplorerSettings"; import { ExplorerSettings } from "../Shared/ExplorerSettings";
import { Action, ActionModifiers } from "../Shared/Telemetry/TelemetryConstants"; import { Action, ActionModifiers } from "../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../Shared/Telemetry/TelemetryProcessor";
import { ArcadiaResourceManager } from "../SparkClusterManager/ArcadiaResourceManager"; import { userContext } from "../UserContext";
import { updateUserContext, userContext } from "../UserContext";
import { getCollectionName, getDatabaseName, getUploadName } from "../Utils/APITypeUtils"; import { getCollectionName, getDatabaseName, getUploadName } from "../Utils/APITypeUtils";
import { decryptJWTToken, getAuthorizationHeader } from "../Utils/AuthorizationUtils"; import { update } from "../Utils/arm/generatedClients/cosmos/databaseAccounts";
import { getAuthorizationHeader } from "../Utils/AuthorizationUtils";
import { stringToBlob } from "../Utils/BlobUtils"; import { stringToBlob } from "../Utils/BlobUtils";
import { isCapabilityEnabled } from "../Utils/CapabilityUtils"; import { isCapabilityEnabled } from "../Utils/CapabilityUtils";
import { fromContentUri, toRawContentUri } from "../Utils/GitHubUtils"; import { fromContentUri, toRawContentUri } from "../Utils/GitHubUtils";
import * as NotificationConsoleUtils from "../Utils/NotificationConsoleUtils"; import * as NotificationConsoleUtils from "../Utils/NotificationConsoleUtils";
import { logConsoleError, logConsoleInfo, logConsoleProgress } from "../Utils/NotificationConsoleUtils"; import { logConsoleError, logConsoleInfo, logConsoleProgress } from "../Utils/NotificationConsoleUtils";
import * as ComponentRegisterer from "./ComponentRegisterer"; import * as ComponentRegisterer from "./ComponentRegisterer";
import { ArcadiaWorkspaceItem } from "./Controls/Arcadia/ArcadiaMenuPicker";
import { CommandButtonComponentProps } from "./Controls/CommandButton/CommandButtonComponent"; import { CommandButtonComponentProps } from "./Controls/CommandButton/CommandButtonComponent";
import { DialogProps, TextFieldProps, useDialog } from "./Controls/Dialog"; import { DialogProps, TextFieldProps, useDialog } from "./Controls/Dialog";
import { GalleryTab as GalleryTabKind } from "./Controls/NotebookGallery/GalleryViewerComponent"; import { GalleryTab as GalleryTabKind } from "./Controls/NotebookGallery/GalleryViewerComponent";
@ -55,7 +49,6 @@ import { AddCollectionPanel } from "./Panes/AddCollectionPanel";
import { AddDatabasePanel } from "./Panes/AddDatabasePanel/AddDatabasePanel"; import { AddDatabasePanel } from "./Panes/AddDatabasePanel/AddDatabasePanel";
import { BrowseQueriesPane } from "./Panes/BrowseQueriesPane/BrowseQueriesPane"; import { BrowseQueriesPane } from "./Panes/BrowseQueriesPane/BrowseQueriesPane";
import { CassandraAddCollectionPane } from "./Panes/CassandraAddCollectionPane/CassandraAddCollectionPane"; import { CassandraAddCollectionPane } from "./Panes/CassandraAddCollectionPane/CassandraAddCollectionPane";
import { ContextualPaneBase } from "./Panes/ContextualPaneBase";
import { DeleteCollectionConfirmationPane } from "./Panes/DeleteCollectionConfirmationPane/DeleteCollectionConfirmationPane"; import { DeleteCollectionConfirmationPane } from "./Panes/DeleteCollectionConfirmationPane/DeleteCollectionConfirmationPane";
import { DeleteDatabaseConfirmationPanel } from "./Panes/DeleteDatabaseConfirmationPanel"; import { DeleteDatabaseConfirmationPanel } from "./Panes/DeleteDatabaseConfirmationPanel";
import { ExecuteSprocParamsPane } from "./Panes/ExecuteSprocParamsPane/ExecuteSprocParamsPane"; import { ExecuteSprocParamsPane } from "./Panes/ExecuteSprocParamsPane/ExecuteSprocParamsPane";
@ -104,7 +97,6 @@ export default class Explorer {
public isServerlessEnabled: ko.Computed<boolean>; public isServerlessEnabled: ko.Computed<boolean>;
public isAccountReady: ko.Observable<boolean>; public isAccountReady: ko.Observable<boolean>;
public canSaveQueries: ko.Computed<boolean>; public canSaveQueries: ko.Computed<boolean>;
public features: ko.Observable<any>;
public queriesClient: QueriesClient; public queriesClient: QueriesClient;
public tableDataClient: TableDataClient; public tableDataClient: TableDataClient;
public splitter: Splitter; public splitter: Splitter;
@ -115,7 +107,6 @@ export default class Explorer {
private setInProgressConsoleDataIdToBeDeleted: (id: string) => void; private setInProgressConsoleDataIdToBeDeleted: (id: string) => void;
// Panes // Panes
public contextPanes: ContextualPaneBase[];
public openSidePanel: (headerText: string, panelContent: JSX.Element, onClose?: () => void) => void; public openSidePanel: (headerText: string, panelContent: JSX.Element, onClose?: () => void) => void;
public closeSidePanel: () => void; public closeSidePanel: () => void;
@ -139,16 +130,10 @@ export default class Explorer {
public isTabsContentExpanded: ko.Observable<boolean>; public isTabsContentExpanded: ko.Observable<boolean>;
public tabsManager: TabsManager; public tabsManager: TabsManager;
// Contextual panes
private gitHubClient: GitHubClient;
public gitHubOAuthService: GitHubOAuthService; public gitHubOAuthService: GitHubOAuthService;
public junoClient: JunoClient;
// features // features
public isPublishNotebookPaneEnabled: ko.Observable<boolean>;
public isHostedDataExplorerEnabled: ko.Computed<boolean>; public isHostedDataExplorerEnabled: ko.Computed<boolean>;
public isMongoIndexingEnabled: ko.Observable<boolean>;
public canExceedMaximumValue: ko.Computed<boolean>;
public isSchemaEnabled: ko.Computed<boolean>; public isSchemaEnabled: ko.Computed<boolean>;
// Notebooks // Notebooks
@ -157,11 +142,6 @@ export default class Explorer {
public notebookServerInfo: ko.Observable<DataModels.NotebookWorkspaceConnectionInfo>; public notebookServerInfo: ko.Observable<DataModels.NotebookWorkspaceConnectionInfo>;
public notebookWorkspaceManager: NotebookWorkspaceManager; public notebookWorkspaceManager: NotebookWorkspaceManager;
public sparkClusterConnectionInfo: ko.Observable<DataModels.SparkClusterConnectionInfo>; public sparkClusterConnectionInfo: ko.Observable<DataModels.SparkClusterConnectionInfo>;
public isSparkEnabled: ko.Observable<boolean>;
public isSparkEnabledForAccount: ko.Observable<boolean>;
public arcadiaToken: ko.Observable<string>;
public arcadiaWorkspaces: ko.ObservableArray<ArcadiaWorkspaceItem>;
public hasStorageAnalyticsAfecFeature: ko.Observable<boolean>;
public isSynapseLinkUpdating: ko.Observable<boolean>; public isSynapseLinkUpdating: ko.Observable<boolean>;
public memoryUsageInfo: ko.Observable<DataModels.MemoryUsageInfo>; public memoryUsageInfo: ko.Observable<DataModels.MemoryUsageInfo>;
public notebookManager?: NotebookManager; public notebookManager?: NotebookManager;
@ -170,7 +150,6 @@ export default class Explorer {
private _isInitializingNotebooks: boolean; private _isInitializingNotebooks: boolean;
private notebookBasePath: ko.Observable<string>; private notebookBasePath: ko.Observable<string>;
private _arcadiaManager: ArcadiaResourceManager;
private notebookToImport: { private notebookToImport: {
name: string; name: string;
content: string; content: string;
@ -182,8 +161,6 @@ export default class Explorer {
private static readonly MaxNbDatabasesToAutoExpand = 5; private static readonly MaxNbDatabasesToAutoExpand = 5;
constructor(params?: ExplorerParams) { constructor(params?: ExplorerParams) {
this.gitHubClient = new GitHubClient(this.onGitHubClientError);
this.junoClient = new JunoClient();
this.setIsNotificationConsoleExpanded = params?.setIsNotificationConsoleExpanded; this.setIsNotificationConsoleExpanded = params?.setIsNotificationConsoleExpanded;
this.setNotificationConsoleData = params?.setNotificationConsoleData; this.setNotificationConsoleData = params?.setNotificationConsoleData;
this.setInProgressConsoleDataIdToBeDeleted = params?.setInProgressConsoleDataIdToBeDeleted; this.setInProgressConsoleDataIdToBeDeleted = params?.setInProgressConsoleDataIdToBeDeleted;
@ -195,22 +172,9 @@ export default class Explorer {
}); });
this.isAccountReady = ko.observable<boolean>(false); this.isAccountReady = ko.observable<boolean>(false);
this._isInitializingNotebooks = false; this._isInitializingNotebooks = false;
this.arcadiaToken = ko.observable<string>();
this.arcadiaToken.subscribe((token: string) => {
if (token) {
const notebookTabs = this.tabsManager.getTabs(ViewModels.CollectionTabKind.NotebookV2);
(notebookTabs || []).forEach((tab: NotebookV2Tab) => {
tab.reconfigureServiceEndpoints();
});
}
});
this.isShellEnabled = ko.observable(false); this.isShellEnabled = ko.observable(false);
this.isNotebooksEnabledForAccount = ko.observable(false); this.isNotebooksEnabledForAccount = ko.observable(false);
this.isNotebooksEnabledForAccount.subscribe((isEnabledForAccount: boolean) => this.refreshCommandBarButtons()); this.isNotebooksEnabledForAccount.subscribe((isEnabledForAccount: boolean) => this.refreshCommandBarButtons());
this.isSparkEnabledForAccount = ko.observable(false);
this.isSparkEnabledForAccount.subscribe((isEnabledForAccount: boolean) => this.refreshCommandBarButtons());
this.hasStorageAnalyticsAfecFeature = ko.observable(false);
this.hasStorageAnalyticsAfecFeature.subscribe((enabled: boolean) => this.refreshCommandBarButtons());
this.isSynapseLinkUpdating = ko.observable<boolean>(false); this.isSynapseLinkUpdating = ko.observable<boolean>(false);
this.isAccountReady.subscribe(async (isAccountReady: boolean) => { this.isAccountReady.subscribe(async (isAccountReady: boolean) => {
if (isAccountReady) { if (isAccountReady) {
@ -219,13 +183,7 @@ export default class Explorer {
: this.refreshAllDatabases(true); : this.refreshAllDatabases(true);
RouteHandler.getInstance().initHandler(); RouteHandler.getInstance().initHandler();
this.notebookWorkspaceManager = new NotebookWorkspaceManager(); this.notebookWorkspaceManager = new NotebookWorkspaceManager();
this.arcadiaWorkspaces = ko.observableArray(); await this._refreshNotebooksEnabledStateForAccount();
this._arcadiaManager = new ArcadiaResourceManager();
this._isAfecFeatureRegistered(Constants.AfecFeatures.StorageAnalytics).then((isRegistered) =>
this.hasStorageAnalyticsAfecFeature(isRegistered)
);
Promise.all([this._refreshNotebooksEnabledStateForAccount(), this._refreshSparkEnabledStateForAccount()]).then(
async () => {
this.isNotebookEnabled( this.isNotebookEnabled(
userContext.authType !== AuthType.ResourceToken && userContext.authType !== AuthType.ResourceToken &&
((await this._containsDefaultNotebookWorkspace(userContext.databaseAccount)) || ((await this._containsDefaultNotebookWorkspace(userContext.databaseAccount)) ||
@ -244,38 +202,10 @@ export default class Explorer {
if (this.isNotebookEnabled()) { if (this.isNotebookEnabled()) {
await this.initNotebooks(userContext.databaseAccount); await this.initNotebooks(userContext.databaseAccount);
const workspaces = await this._getArcadiaWorkspaces();
this.arcadiaWorkspaces(workspaces);
} else if (this.notebookToImport) { } else if (this.notebookToImport) {
// if notebooks is not enabled but the user is trying to do a quickstart setup with notebooks, open the SetupNotebooksPane // if notebooks is not enabled but the user is trying to do a quickstart setup with notebooks, open the SetupNotebooksPane
this._openSetupNotebooksPaneForQuickstart(); this._openSetupNotebooksPaneForQuickstart();
} }
this.isSparkEnabled(
(this.isNotebookEnabled() &&
this.isSparkEnabledForAccount() &&
this.arcadiaWorkspaces() &&
this.arcadiaWorkspaces().length > 0) ||
userContext.features.enableSpark
);
if (this.isSparkEnabled()) {
trackEvent(
{ name: "LoadedWithSparkEnabled" },
{
subscriptionId: userContext.subscriptionId,
accountName: userContext.databaseAccount?.name,
accountId: userContext.databaseAccount?.id,
platform: configContext.platform,
}
);
const pollArcadiaTokenRefresh = async () => {
this.arcadiaToken(await this.getArcadiaToken());
setTimeout(() => pollArcadiaTokenRefresh(), this.getTokenRefreshInterval(this.arcadiaToken()));
};
await pollArcadiaTokenRefresh();
}
}
);
} }
}); });
this.memoryUsageInfo = ko.observable<DataModels.MemoryUsageInfo>(); this.memoryUsageInfo = ko.observable<DataModels.MemoryUsageInfo>();
@ -286,11 +216,6 @@ export default class Explorer {
this.resourceTokenCollectionId = ko.observable<string>(); this.resourceTokenCollectionId = ko.observable<string>();
this.resourceTokenCollection = ko.observable<ViewModels.CollectionBase>(); this.resourceTokenCollection = ko.observable<ViewModels.CollectionBase>();
this.resourceTokenPartitionKey = ko.observable<string>(); this.resourceTokenPartitionKey = ko.observable<string>();
this.isMongoIndexingEnabled = ko.observable<boolean>(false);
this.isPublishNotebookPaneEnabled = ko.observable<boolean>(false);
this.canExceedMaximumValue = ko.computed<boolean>(() => userContext.features.canExceedMaximumValue);
this.isSchemaEnabled = ko.computed<boolean>(() => userContext.features.enableSchema); this.isSchemaEnabled = ko.computed<boolean>(() => userContext.features.enableSchema);
this.databases = ko.observableArray<ViewModels.Database>(); this.databases = ko.observableArray<ViewModels.Database>();
@ -445,8 +370,6 @@ export default class Explorer {
this.refreshNotebookList(); this.refreshNotebookList();
}); });
this.isSparkEnabled = ko.observable(false);
this.isSparkEnabled.subscribe((isEnabled: boolean) => this.refreshCommandBarButtons());
this.resourceTree = new ResourceTreeAdapter(this); this.resourceTree = new ResourceTreeAdapter(this);
this.resourceTreeForResourceToken = new ResourceTreeAdapterForResourceToken(this); this.resourceTreeForResourceToken = new ResourceTreeAdapterForResourceToken(this);
this.notebookServerInfo = ko.observable<DataModels.NotebookWorkspaceConnectionInfo>({ this.notebookServerInfo = ko.observable<DataModels.NotebookWorkspaceConnectionInfo>({
@ -490,23 +413,6 @@ export default class Explorer {
} }
} }
private onGitHubClientError = (error: any): void => {
Logger.logError(getErrorMessage(error), "NotebookManager/onGitHubClientError");
if (error.status === HttpStatusCodes.Unauthorized) {
this.gitHubOAuthService.resetToken();
this.showOkCancelModalDialog(
undefined,
"Cosmos DB cannot access your Github account anymore. Please connect to GitHub again.",
"Connect to GitHub",
() => this.openGitHubReposPanel("Connect to GitHub"),
"Cancel",
undefined
);
}
};
public openEnableSynapseLinkDialog(): void { public openEnableSynapseLinkDialog(): void {
const addSynapseLinkDialogProps: DialogProps = { const addSynapseLinkDialogProps: DialogProps = {
linkProps: { linkProps: {
@ -528,22 +434,17 @@ export default class Explorer {
this.isSynapseLinkUpdating(true); this.isSynapseLinkUpdating(true);
useDialog.getState().closeDialog(); useDialog.getState().closeDialog();
const resourceProviderClient = new ResourceProviderClientFactory().getOrCreate(userContext.databaseAccount.id);
try { try {
const databaseAccount: DataModels.DatabaseAccount = await resourceProviderClient.patchAsync( await update(userContext.subscriptionId, userContext.resourceGroup, userContext.databaseAccount.id, {
userContext.databaseAccount.id,
"2019-12-12",
{
properties: { properties: {
enableAnalyticalStorage: true, enableAnalyticalStorage: true,
}, },
} });
);
clearInProgressMessage(); clearInProgressMessage();
logConsoleInfo("Enabled Azure Synapse Link for this account"); logConsoleInfo("Enabled Azure Synapse Link for this account");
TelemetryProcessor.traceSuccess(Action.EnableAzureSynapseLink, {}, startTime); TelemetryProcessor.traceSuccess(Action.EnableAzureSynapseLink, {}, startTime);
updateUserContext({ databaseAccount }); userContext.databaseAccount.properties.enableAnalyticalStorage = true;
} catch (error) { } catch (error) {
clearInProgressMessage(); clearInProgressMessage();
logConsoleError(`Enabling Azure Synapse Link for this account failed. ${getErrorMessage(error)}`); logConsoleError(`Enabling Azure Synapse Link for this account failed. ${getErrorMessage(error)}`);
@ -733,52 +634,6 @@ export default class Explorer {
window.open(Constants.Urls.feedbackEmail, "_blank"); window.open(Constants.Urls.feedbackEmail, "_blank");
}; };
public async getArcadiaToken(): Promise<string> {
return new Promise<string>((resolve: (token: string) => void, reject: (error: any) => void) => {
sendCachedDataMessage<string>(MessageTypes.GetArcadiaToken, undefined /** params **/).then(
(token: string) => {
resolve(token);
},
(error: any) => {
Logger.logError(getErrorMessage(error), "Explorer/getArcadiaToken");
resolve(undefined);
}
);
});
}
private async _getArcadiaWorkspaces(): Promise<ArcadiaWorkspaceItem[]> {
try {
const workspaces = await this._arcadiaManager.listWorkspacesAsync([userContext.subscriptionId]);
let workspaceItems: ArcadiaWorkspaceItem[] = new Array(workspaces.length);
const sparkPromises: Promise<void>[] = [];
workspaces.forEach((workspace, i) => {
let promise = this._arcadiaManager.listSparkPoolsAsync(workspaces[i].id).then(
(sparkpools) => {
workspaceItems[i] = { ...workspace, sparkPools: sparkpools };
},
(error) => {
Logger.logError(getErrorMessage(error), "Explorer/this._arcadiaManager.listSparkPoolsAsync");
}
);
sparkPromises.push(promise);
});
return Promise.all(sparkPromises).then(() => workspaceItems);
} catch (error) {
handleError(error, "Explorer/this._arcadiaManager.listWorkspacesAsync", "Get Arcadia workspaces failed");
return Promise.resolve([]);
}
}
public async createWorkspace(): Promise<string> {
return sendCachedDataMessage(MessageTypes.CreateWorkspace, undefined /** params **/);
}
public async createSparkPool(workspaceId: string): Promise<string> {
return sendCachedDataMessage(MessageTypes.CreateSparkPool, [workspaceId]);
}
public async initNotebooks(databaseAccount: DataModels.DatabaseAccount): Promise<void> { public async initNotebooks(databaseAccount: DataModels.DatabaseAccount): Promise<void> {
if (!databaseAccount) { if (!databaseAccount) {
throw new Error("No database account specified"); throw new Error("No database account specified");
@ -1178,7 +1033,6 @@ export default class Explorer {
onTakeSnapshot, onTakeSnapshot,
onClosePanel onClosePanel
); );
this.isPublishNotebookPaneEnabled(true);
} }
} }
@ -1457,57 +1311,6 @@ export default class Explorer {
} }
} }
public _refreshSparkEnabledStateForAccount = async (): Promise<void> => {
const { subscriptionId, authType } = userContext;
const armEndpoint = configContext.ARM_ENDPOINT;
if (!subscriptionId || !armEndpoint || authType === AuthType.EncryptedToken) {
// explorer is not aware of the database account yet
this.isSparkEnabledForAccount(false);
return;
}
const featureUri = `subscriptions/${subscriptionId}/providers/Microsoft.Features/providers/Microsoft.DocumentDb/features/${Constants.AfecFeatures.Spark}`;
const resourceProviderClient = new ResourceProviderClientFactory().getOrCreate(featureUri);
try {
const sparkNotebooksFeature: DataModels.AfecFeature = await resourceProviderClient.getAsync(
featureUri,
Constants.ArmApiVersions.armFeatures
);
const isEnabled =
(sparkNotebooksFeature &&
sparkNotebooksFeature.properties &&
sparkNotebooksFeature.properties.state === "Registered") ||
false;
this.isSparkEnabledForAccount(isEnabled);
} catch (error) {
Logger.logError(getErrorMessage(error), "Explorer/isSparkEnabledForAccount");
this.isSparkEnabledForAccount(false);
}
};
public _isAfecFeatureRegistered = async (featureName: string): Promise<boolean> => {
const { subscriptionId, authType } = userContext;
const armEndpoint = configContext.ARM_ENDPOINT;
if (!featureName || !subscriptionId || !armEndpoint || authType === AuthType.EncryptedToken) {
// explorer is not aware of the database account yet
return false;
}
const featureUri = `subscriptions/${subscriptionId}/providers/Microsoft.Features/providers/Microsoft.DocumentDb/features/${featureName}`;
const resourceProviderClient = new ResourceProviderClientFactory().getOrCreate(featureUri);
try {
const featureStatus: DataModels.AfecFeature = await resourceProviderClient.getAsync(
featureUri,
Constants.ArmApiVersions.armFeatures
);
const isEnabled =
(featureStatus && featureStatus.properties && featureStatus.properties.state === "Registered") || false;
return isEnabled;
} catch (error) {
Logger.logError(getErrorMessage(error), "Explorer/isSparkEnabledForAccount");
return false;
}
};
private refreshNotebookList = async (): Promise<void> => { private refreshNotebookList = async (): Promise<void> => {
if (!this.isNotebookEnabled() || !this.notebookManager?.notebookContentClient) { if (!this.isNotebookEnabled() || !this.notebookManager?.notebookContentClient) {
return; return;
@ -1724,30 +1527,6 @@ export default class Explorer {
} }
} }
private getTokenRefreshInterval(token: string): number {
let tokenRefreshInterval = Constants.ClientDefaults.arcadiaTokenRefreshInterval;
if (!token) {
return tokenRefreshInterval;
}
try {
const tokenPayload = decryptJWTToken(this.arcadiaToken());
if (tokenPayload && tokenPayload.hasOwnProperty("exp")) {
const expirationTime = tokenPayload.exp as number; // seconds since unix epoch
const now = new Date().getTime() / 1000;
const tokenExpirationIntervalInMs = (expirationTime - now) * 1000;
if (tokenExpirationIntervalInMs < tokenRefreshInterval) {
tokenRefreshInterval =
tokenExpirationIntervalInMs - Constants.ClientDefaults.arcadiaTokenRefreshIntervalPaddingMs;
}
}
return tokenRefreshInterval;
} catch (error) {
Logger.logError(getErrorMessage(error), "Explorer/getTokenRefreshInterval");
return tokenRefreshInterval;
}
}
private _openSetupNotebooksPaneForQuickstart(): void { private _openSetupNotebooksPaneForQuickstart(): void {
const title = "Enable Notebooks (Preview)"; const title = "Enable Notebooks (Preview)";
const description = const description =
@ -1779,11 +1558,6 @@ export default class Explorer {
} }
} }
public async loadSelectedDatabaseOffer(): Promise<void> {
const database = this.findSelectedDatabase();
await database?.loadOffer();
}
public async loadDatabaseOffers(): Promise<void> { public async loadDatabaseOffers(): Promise<void> {
await Promise.all( await Promise.all(
this.databases()?.map(async (database: ViewModels.Database) => { this.databases()?.map(async (database: ViewModels.Database) => {

View File

@ -22,7 +22,6 @@ describe("CommandBarComponentButtonFactory tests", () => {
}, },
} as DatabaseAccount, } as DatabaseAccount,
}); });
mockExplorer.isSparkEnabled = ko.observable(true);
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isDatabaseNodeOrNoneSelected = () => true; mockExplorer.isDatabaseNodeOrNoneSelected = () => true;
@ -65,7 +64,6 @@ describe("CommandBarComponentButtonFactory tests", () => {
} as DatabaseAccount, } as DatabaseAccount,
}); });
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isSparkEnabled = ko.observable(true);
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isDatabaseNodeOrNoneSelected = () => true; mockExplorer.isDatabaseNodeOrNoneSelected = () => true;
@ -131,7 +129,6 @@ describe("CommandBarComponentButtonFactory tests", () => {
}, },
} as DatabaseAccount, } as DatabaseAccount,
}); });
mockExplorer.isSparkEnabled = ko.observable(true);
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isDatabaseNodeOrNoneSelected = () => true; mockExplorer.isDatabaseNodeOrNoneSelected = () => true;
@ -231,7 +228,6 @@ describe("CommandBarComponentButtonFactory tests", () => {
} as DatabaseAccount, } as DatabaseAccount,
}); });
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isSparkEnabled = ko.observable(true);
mockExplorer.isDatabaseNodeOrNoneSelected = () => true; mockExplorer.isDatabaseNodeOrNoneSelected = () => true;
mockExplorer.isServerlessEnabled = ko.computed<boolean>(() => false); mockExplorer.isServerlessEnabled = ko.computed<boolean>(() => false);
@ -323,7 +319,6 @@ describe("CommandBarComponentButtonFactory tests", () => {
}); });
mockExplorer.isSynapseLinkUpdating = ko.observable(false); mockExplorer.isSynapseLinkUpdating = ko.observable(false);
mockExplorer.isSparkEnabled = ko.observable(true);
mockExplorer.isDatabaseNodeOrNoneSelected = () => true; mockExplorer.isDatabaseNodeOrNoneSelected = () => true;
mockExplorer.isNotebooksEnabledForAccount = ko.observable(false); mockExplorer.isNotebooksEnabledForAccount = ko.observable(false);
mockExplorer.isRunningOnNationalCloud = ko.observable(false); mockExplorer.isRunningOnNationalCloud = ko.observable(false);

View File

@ -14,7 +14,6 @@ import { StyleConstants } from "../../../Common/Constants";
import { MemoryUsageInfo } from "../../../Contracts/DataModels"; import { MemoryUsageInfo } from "../../../Contracts/DataModels";
import { Action, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants"; import { Action, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import { ArcadiaMenuPicker } from "../../Controls/Arcadia/ArcadiaMenuPicker";
import { CommandButtonComponentProps } from "../../Controls/CommandButton/CommandButtonComponent"; import { CommandButtonComponentProps } from "../../Controls/CommandButton/CommandButtonComponent";
import { MemoryTrackerComponent } from "./MemoryTrackerComponent"; import { MemoryTrackerComponent } from "./MemoryTrackerComponent";
@ -168,10 +167,6 @@ export const convertButton = (btns: CommandButtonComponentProps[], backgroundCol
}; };
} }
if (btn.isArcadiaPicker && btn.arcadiaProps) {
result.commandBarButtonAs = () => <ArcadiaMenuPicker {...btn.arcadiaProps} />;
}
return result; return result;
} }
); );

View File

@ -36,7 +36,6 @@ import * as Constants from "../../../Common/Constants";
import { Areas } from "../../../Common/Constants"; import { Areas } from "../../../Common/Constants";
import { Action as TelemetryAction, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants"; import { Action as TelemetryAction, ActionModifiers } from "../../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor";
import { decryptJWTToken } from "../../../Utils/AuthorizationUtils";
import { logConsoleError, logConsoleInfo } from "../../../Utils/NotificationConsoleUtils"; import { logConsoleError, logConsoleInfo } from "../../../Utils/NotificationConsoleUtils";
import * as FileSystemUtil from "../FileSystemUtil"; import * as FileSystemUtil from "../FileSystemUtil";
import * as cdbActions from "../NotebookComponent/actions"; import * as cdbActions from "../NotebookComponent/actions";
@ -105,11 +104,6 @@ const formWebSocketURL = (serverConfig: NotebookServiceConfig, kernelId: string,
params.append("session_id", sessionId); params.append("session_id", sessionId);
} }
const userId = getUserPuid();
if (userId) {
params.append("user_id", userId);
}
const q = params.toString(); const q = params.toString();
const suffix = q !== "" ? `?${q}` : ""; const suffix = q !== "" ? `?${q}` : "";
@ -289,7 +283,6 @@ export const launchWebSocketKernelEpic = (
return EMPTY; return EMPTY;
} }
const serverConfig: NotebookServiceConfig = selectors.serverConfig(host); const serverConfig: NotebookServiceConfig = selectors.serverConfig(host);
serverConfig.userPuid = getUserPuid();
const { const {
payload: { kernelSpecName, cwd, kernelRef, contentRef }, payload: { kernelSpecName, cwd, kernelRef, contentRef },
@ -766,25 +759,6 @@ const executeFocusedCellAndFocusNextEpic = (
); );
}; };
function getUserPuid(): string {
const arcadiaToken = window.dataExplorer && window.dataExplorer.arcadiaToken();
if (!arcadiaToken) {
return undefined;
}
let userPuid;
try {
const tokenPayload = decryptJWTToken(arcadiaToken);
if (tokenPayload && tokenPayload.hasOwnProperty("puid")) {
userPuid = tokenPayload.puid;
}
} catch (error) {
// ignore
}
return userPuid;
}
/** /**
* Close tab if mimetype not supported * Close tab if mimetype not supported
* @param action$ * @param action$

View File

@ -862,8 +862,6 @@ export class AddCollectionPanel extends React.Component<AddCollectionPanelProps,
case "SQL": case "SQL":
case "Mongo": case "Mongo":
return true; return true;
case "Cassandra":
return this.props.explorer.hasStorageAnalyticsAfecFeature();
default: default:
return false; return false;
} }

View File

@ -17,12 +17,8 @@ exports[`GitHub Repos Panel should render Default properly 1`] = `
addRepoProps={ addRepoProps={
Object { Object {
"container": Explorer { "container": Explorer {
"_isAfecFeatureRegistered": [Function],
"_isInitializingNotebooks": false, "_isInitializingNotebooks": false,
"_refreshSparkEnabledStateForAccount": [Function],
"_resetNotebookWorkspace": [Function], "_resetNotebookWorkspace": [Function],
"arcadiaToken": [Function],
"canExceedMaximumValue": [Function],
"canSaveQueries": [Function], "canSaveQueries": [Function],
"closeSidePanel": undefined, "closeSidePanel": undefined,
"collapsedResourceTreeWidth": 36, "collapsedResourceTreeWidth": 36,
@ -43,797 +39,21 @@ exports[`GitHub Repos Panel should render Default properly 1`] = `
"tabsButtons": Array [], "tabsButtons": Array [],
}, },
"databases": [Function], "databases": [Function],
"gitHubClient": GitHubClient {
"errorCallback": [Function],
"ocktokit": OctokitWithDefaults {
"actions": Object {
"addSelectedRepoToOrgSecret": [Function],
"cancelWorkflowRun": [Function],
"createOrUpdateOrgSecret": [Function],
"createOrUpdateRepoSecret": [Function],
"createOrUpdateSecretForRepo": [Function],
"createRegistrationToken": [Function],
"createRegistrationTokenForOrg": [Function],
"createRegistrationTokenForRepo": [Function],
"createRemoveToken": [Function],
"createRemoveTokenForOrg": [Function],
"createRemoveTokenForRepo": [Function],
"deleteArtifact": [Function],
"deleteOrgSecret": [Function],
"deleteRepoSecret": [Function],
"deleteSecretFromRepo": [Function],
"deleteSelfHostedRunnerFromOrg": [Function],
"deleteSelfHostedRunnerFromRepo": [Function],
"deleteWorkflowRunLogs": [Function],
"downloadArtifact": [Function],
"downloadJobLogsForWorkflowRun": [Function],
"downloadWorkflowJobLogs": [Function],
"downloadWorkflowRunLogs": [Function],
"getArtifact": [Function],
"getJobForWorkflowRun": [Function],
"getOrgPublicKey": [Function],
"getOrgSecret": [Function],
"getPublicKey": [Function],
"getRepoPublicKey": [Function],
"getRepoSecret": [Function],
"getSecret": [Function],
"getSelfHostedRunner": [Function],
"getSelfHostedRunnerForOrg": [Function],
"getSelfHostedRunnerForRepo": [Function],
"getWorkflow": [Function],
"getWorkflowJob": [Function],
"getWorkflowRun": [Function],
"getWorkflowRunUsage": [Function],
"getWorkflowUsage": [Function],
"listArtifactsForRepo": [Function],
"listDownloadsForSelfHostedRunnerApplication": [Function],
"listJobsForWorkflowRun": [Function],
"listOrgSecrets": [Function],
"listRepoSecrets": [Function],
"listRepoWorkflowRuns": [Function],
"listRepoWorkflows": [Function],
"listRunnerApplicationsForOrg": [Function],
"listRunnerApplicationsForRepo": [Function],
"listSecretsForRepo": [Function],
"listSelectedReposForOrgSecret": [Function],
"listSelfHostedRunnersForOrg": [Function],
"listSelfHostedRunnersForRepo": [Function],
"listWorkflowJobLogs": [Function],
"listWorkflowRunArtifacts": [Function],
"listWorkflowRunLogs": [Function],
"listWorkflowRuns": [Function],
"listWorkflowRunsForRepo": [Function],
"reRunWorkflow": [Function],
"removeSelectedRepoFromOrgSecret": [Function],
"removeSelfHostedRunner": [Function],
"setSelectedReposForOrgSecret": [Function],
},
"activity": Object {
"checkRepoIsStarredByAuthenticatedUser": [Function],
"checkStarringRepo": [Function],
"deleteRepoSubscription": [Function],
"deleteThreadSubscription": [Function],
"getFeeds": [Function],
"getRepoSubscription": [Function],
"getThread": [Function],
"getThreadSubscription": [Function],
"getThreadSubscriptionForAuthenticatedUser": [Function],
"listEventsForAuthenticatedUser": [Function],
"listEventsForOrg": [Function],
"listEventsForUser": [Function],
"listFeeds": [Function],
"listNotifications": [Function],
"listNotificationsForAuthenticatedUser": [Function],
"listNotificationsForRepo": [Function],
"listOrgEventsForAuthenticatedUser": [Function],
"listPublicEvents": [Function],
"listPublicEventsForOrg": [Function],
"listPublicEventsForRepoNetwork": [Function],
"listPublicEventsForUser": [Function],
"listPublicOrgEvents": [Function],
"listReceivedEventsForUser": [Function],
"listReceivedPublicEventsForUser": [Function],
"listRepoEvents": [Function],
"listRepoNotificationsForAuthenticatedUser": [Function],
"listReposStarredByAuthenticatedUser": [Function],
"listReposStarredByUser": [Function],
"listReposWatchedByUser": [Function],
"listStargazersForRepo": [Function],
"listWatchedReposForAuthenticatedUser": [Function],
"listWatchersForRepo": [Function],
"markAsRead": [Function],
"markNotificationsAsRead": [Function],
"markNotificationsAsReadForRepo": [Function],
"markRepoNotificationsAsRead": [Function],
"markThreadAsRead": [Function],
"setRepoSubscription": [Function],
"setThreadSubscription": [Function],
"starRepo": [Function],
"starRepoForAuthenticatedUser": [Function],
"unstarRepo": [Function],
"unstarRepoForAuthenticatedUser": [Function],
},
"apps": Object {
"addRepoToInstallation": [Function],
"checkAccountIsAssociatedWithAny": [Function],
"checkAccountIsAssociatedWithAnyStubbed": [Function],
"checkToken": [Function],
"createContentAttachment": [Function],
"createFromManifest": [Function],
"createInstallationAccessToken": [Function],
"createInstallationToken": [Function],
"deleteAuthorization": [Function],
"deleteInstallation": [Function],
"deleteToken": [Function],
"getAuthenticated": [Function],
"getBySlug": [Function],
"getInstallation": [Function],
"getOrgInstallation": [Function],
"getRepoInstallation": [Function],
"getSubscriptionPlanForAccount": [Function],
"getSubscriptionPlanForAccountStubbed": [Function],
"getUserInstallation": [Function],
"listAccountsForPlan": [Function],
"listAccountsForPlanStubbed": [Function],
"listAccountsUserOrOrgOnPlan": [Function],
"listAccountsUserOrOrgOnPlanStubbed": [Function],
"listInstallationReposForAuthenticatedUser": [Function],
"listInstallations": [Function],
"listInstallationsForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUserStubbed": [Function],
"listPlans": [Function],
"listPlansStubbed": [Function],
"listRepos": [Function],
"listReposAccessibleToInstallation": [Function],
"listSubscriptionsForAuthenticatedUser": [Function],
"listSubscriptionsForAuthenticatedUserStubbed": [Function],
"removeRepoFromInstallation": [Function],
"resetToken": [Function],
"revokeInstallationAccessToken": [Function],
"revokeInstallationToken": [Function],
"suspendInstallation": [Function],
"unsuspendInstallation": [Function],
},
"auth": [Function],
"checks": Object {
"create": [Function],
"createSuite": [Function],
"get": [Function],
"getSuite": [Function],
"listAnnotations": [Function],
"listForRef": [Function],
"listForSuite": [Function],
"listSuitesForRef": [Function],
"rerequestSuite": [Function],
"setSuitesPreferences": [Function],
"update": [Function],
},
"codeScanning": Object {
"getAlert": [Function],
"listAlertsForRepo": [Function],
},
"codesOfConduct": Object {
"getAllCodesOfConduct": [Function],
"getConductCode": [Function],
"getForRepo": [Function],
"listConductCodes": [Function],
},
"emojis": Object {
"get": [Function],
},
"gists": Object {
"checkIsStarred": [Function],
"create": [Function],
"createComment": [Function],
"delete": [Function],
"deleteComment": [Function],
"fork": [Function],
"get": [Function],
"getComment": [Function],
"getRevision": [Function],
"list": [Function],
"listComments": [Function],
"listCommits": [Function],
"listForUser": [Function],
"listForks": [Function],
"listPublic": [Function],
"listPublicForUser": [Function],
"listStarred": [Function],
"star": [Function],
"unstar": [Function],
"update": [Function],
"updateComment": [Function],
},
"git": Object {
"createBlob": [Function],
"createCommit": [Function],
"createRef": [Function],
"createTag": [Function],
"createTree": [Function],
"deleteRef": [Function],
"getBlob": [Function],
"getCommit": [Function],
"getRef": [Function],
"getTag": [Function],
"getTree": [Function],
"listMatchingRefs": [Function],
"updateRef": [Function],
},
"gitignore": Object {
"getAllTemplates": [Function],
"getTemplate": [Function],
"listTemplates": [Function],
},
"graphql": [Function],
"hook": [Function],
"interactions": Object {
"addOrUpdateRestrictionsForOrg": [Function],
"addOrUpdateRestrictionsForRepo": [Function],
"getRestrictionsForOrg": [Function],
"getRestrictionsForRepo": [Function],
"removeRestrictionsForOrg": [Function],
"removeRestrictionsForRepo": [Function],
"setRestrictionsForOrg": [Function],
"setRestrictionsForRepo": [Function],
},
"issues": Object {
"addAssignees": [Function],
"addLabels": [Function],
"checkAssignee": [Function],
"checkUserCanBeAssigned": [Function],
"create": [Function],
"createComment": [Function],
"createLabel": [Function],
"createMilestone": [Function],
"deleteComment": [Function],
"deleteLabel": [Function],
"deleteMilestone": [Function],
"get": [Function],
"getComment": [Function],
"getEvent": [Function],
"getLabel": [Function],
"getMilestone": [Function],
"list": [Function],
"listAssignees": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listEvents": [Function],
"listEventsForRepo": [Function],
"listEventsForTimeline": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listLabelsForMilestone": [Function],
"listLabelsForRepo": [Function],
"listLabelsOnIssue": [Function],
"listMilestones": [Function],
"listMilestonesForRepo": [Function],
"lock": [Function],
"removeAllLabels": [Function],
"removeAssignees": [Function],
"removeLabel": [Function],
"removeLabels": [Function],
"replaceAllLabels": [Function],
"replaceLabels": [Function],
"setLabels": [Function],
"unlock": [Function],
"update": [Function],
"updateComment": [Function],
"updateLabel": [Function],
"updateMilestone": [Function],
},
"licenses": Object {
"get": [Function],
"getAllCommonlyUsed": [Function],
"getForRepo": [Function],
"listCommonlyUsed": [Function],
},
"log": Object {
"debug": [Function],
"error": [Function],
"info": [Function],
"warn": [Function],
},
"markdown": Object {
"render": [Function],
"renderRaw": [Function],
},
"meta": Object {
"get": [Function],
},
"migrations": Object {
"cancelImport": [Function],
"deleteArchiveForAuthenticatedUser": [Function],
"deleteArchiveForOrg": [Function],
"downloadArchiveForOrg": [Function],
"getArchiveForAuthenticatedUser": [Function],
"getCommitAuthors": [Function],
"getImportProgress": [Function],
"getImportStatus": [Function],
"getLargeFiles": [Function],
"getStatusForAuthenticatedUser": [Function],
"getStatusForOrg": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listReposForOrg": [Function],
"listReposForUser": [Function],
"mapCommitAuthor": [Function],
"setLfsPreference": [Function],
"startForAuthenticatedUser": [Function],
"startForOrg": [Function],
"startImport": [Function],
"unlockRepoForAuthenticatedUser": [Function],
"unlockRepoForOrg": [Function],
"updateImport": [Function],
},
"orgs": Object {
"addOrUpdateMembership": [Function],
"blockUser": [Function],
"checkBlockedUser": [Function],
"checkMembership": [Function],
"checkMembershipForUser": [Function],
"checkPublicMembership": [Function],
"checkPublicMembershipForUser": [Function],
"concealMembership": [Function],
"convertMemberToOutsideCollaborator": [Function],
"createHook": [Function],
"createInvitation": [Function],
"createWebhook": [Function],
"deleteHook": [Function],
"deleteWebhook": [Function],
"get": [Function],
"getHook": [Function],
"getMembership": [Function],
"getMembershipForAuthenticatedUser": [Function],
"getMembershipForUser": [Function],
"getWebhook": [Function],
"list": [Function],
"listAppInstallations": [Function],
"listBlockedUsers": [Function],
"listForAuthenticatedUser": [Function],
"listForUser": [Function],
"listHooks": [Function],
"listInstallations": [Function],
"listInvitationTeams": [Function],
"listMembers": [Function],
"listMemberships": [Function],
"listMembershipsForAuthenticatedUser": [Function],
"listOutsideCollaborators": [Function],
"listPendingInvitations": [Function],
"listPublicMembers": [Function],
"listWebhooks": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"publicizeMembership": [Function],
"removeMember": [Function],
"removeMembership": [Function],
"removeMembershipForUser": [Function],
"removeOutsideCollaborator": [Function],
"removePublicMembershipForAuthenticatedUser": [Function],
"setMembershipForUser": [Function],
"setPublicMembershipForAuthenticatedUser": [Function],
"unblockUser": [Function],
"update": [Function],
"updateHook": [Function],
"updateMembership": [Function],
"updateMembershipForAuthenticatedUser": [Function],
"updateWebhook": [Function],
},
"paginate": [Function],
"projects": Object {
"addCollaborator": [Function],
"createCard": [Function],
"createColumn": [Function],
"createForAuthenticatedUser": [Function],
"createForOrg": [Function],
"createForRepo": [Function],
"delete": [Function],
"deleteCard": [Function],
"deleteColumn": [Function],
"get": [Function],
"getCard": [Function],
"getColumn": [Function],
"getPermissionForUser": [Function],
"listCards": [Function],
"listCollaborators": [Function],
"listColumns": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listForUser": [Function],
"moveCard": [Function],
"moveColumn": [Function],
"removeCollaborator": [Function],
"reviewUserPermissionLevel": [Function],
"update": [Function],
"updateCard": [Function],
"updateColumn": [Function],
},
"pulls": Object {
"checkIfMerged": [Function],
"create": [Function],
"createComment": [Function],
"createReplyForReviewComment": [Function],
"createReview": [Function],
"createReviewComment": [Function],
"createReviewCommentReply": [Function],
"createReviewRequest": [Function],
"deleteComment": [Function],
"deletePendingReview": [Function],
"deleteReviewComment": [Function],
"deleteReviewRequest": [Function],
"dismissReview": [Function],
"get": [Function],
"getComment": [Function],
"getCommentsForReview": [Function],
"getReview": [Function],
"getReviewComment": [Function],
"list": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listCommentsForReview": [Function],
"listCommits": [Function],
"listFiles": [Function],
"listRequestedReviewers": [Function],
"listReviewComments": [Function],
"listReviewCommentsForRepo": [Function],
"listReviewRequests": [Function],
"listReviews": [Function],
"merge": [Function],
"removeRequestedReviewers": [Function],
"requestReviewers": [Function],
"submitReview": [Function],
"update": [Function],
"updateBranch": [Function],
"updateComment": [Function],
"updateReview": [Function],
"updateReviewComment": [Function],
},
"rateLimit": Object {
"get": [Function],
},
"reactions": Object {
"createForCommitComment": [Function],
"createForIssue": [Function],
"createForIssueComment": [Function],
"createForPullRequestReviewComment": [Function],
"createForTeamDiscussionCommentInOrg": [Function],
"createForTeamDiscussionInOrg": [Function],
"delete": [Function],
"deleteForCommitComment": [Function],
"deleteForIssue": [Function],
"deleteForIssueComment": [Function],
"deleteForPullRequestComment": [Function],
"deleteForTeamDiscussion": [Function],
"deleteForTeamDiscussionComment": [Function],
"deleteLegacy": [Function],
"listForCommitComment": [Function],
"listForIssue": [Function],
"listForIssueComment": [Function],
"listForPullRequestReviewComment": [Function],
"listForTeamDiscussionCommentInOrg": [Function],
"listForTeamDiscussionInOrg": [Function],
},
"repos": Object {
"acceptInvitation": [Function],
"addAppAccessRestrictions": [Function],
"addCollaborator": [Function],
"addDeployKey": [Function],
"addProtectedBranchAdminEnforcement": [Function],
"addProtectedBranchAppRestrictions": [Function],
"addProtectedBranchRequiredSignatures": [Function],
"addProtectedBranchRequiredStatusChecksContexts": [Function],
"addProtectedBranchTeamRestrictions": [Function],
"addProtectedBranchUserRestrictions": [Function],
"addStatusCheckContexts": [Function],
"addTeamAccessRestrictions": [Function],
"addUserAccessRestrictions": [Function],
"checkCollaborator": [Function],
"checkVulnerabilityAlerts": [Function],
"compareCommits": [Function],
"createCommitComment": [Function],
"createCommitSignatureProtection": [Function],
"createCommitStatus": [Function],
"createDeployKey": [Function],
"createDeployment": [Function],
"createDeploymentStatus": [Function],
"createDispatchEvent": [Function],
"createForAuthenticatedUser": [Function],
"createFork": [Function],
"createHook": [Function],
"createInOrg": [Function],
"createOrUpdateFile": [Function],
"createOrUpdateFileContents": [Function],
"createPagesSite": [Function],
"createRelease": [Function],
"createStatus": [Function],
"createUsingTemplate": [Function],
"createWebhook": [Function],
"declineInvitation": [Function],
"delete": [Function],
"deleteAccessRestrictions": [Function],
"deleteAdminBranchProtection": [Function],
"deleteBranchProtection": [Function],
"deleteCommitComment": [Function],
"deleteCommitSignatureProtection": [Function],
"deleteDeployKey": [Function],
"deleteDeployment": [Function],
"deleteDownload": [Function],
"deleteFile": [Function],
"deleteHook": [Function],
"deleteInvitation": [Function],
"deletePagesSite": [Function],
"deletePullRequestReviewProtection": [Function],
"deleteRelease": [Function],
"deleteReleaseAsset": [Function],
"deleteWebhook": [Function],
"disableAutomatedSecurityFixes": [Function],
"disablePagesSite": [Function],
"disableVulnerabilityAlerts": [Function],
"downloadArchive": [Function],
"enableAutomatedSecurityFixes": [Function],
"enablePagesSite": [Function],
"enableVulnerabilityAlerts": [Function],
"get": [Function],
"getAccessRestrictions": [Function],
"getAdminBranchProtection": [Function],
"getAllStatusCheckContexts": [Function],
"getAllTopics": [Function],
"getAppsWithAccessToProtectedBranch": [Function],
"getArchiveLink": [Function],
"getBranch": [Function],
"getBranchProtection": [Function],
"getClones": [Function],
"getCodeFrequencyStats": [Function],
"getCollaboratorPermissionLevel": [Function],
"getCombinedStatusForRef": [Function],
"getCommit": [Function],
"getCommitActivityStats": [Function],
"getCommitComment": [Function],
"getCommitSignatureProtection": [Function],
"getCommunityProfileMetrics": [Function],
"getContent": [Function],
"getContents": [Function],
"getContributorsStats": [Function],
"getDeployKey": [Function],
"getDeployment": [Function],
"getDeploymentStatus": [Function],
"getDownload": [Function],
"getHook": [Function],
"getLatestPagesBuild": [Function],
"getLatestRelease": [Function],
"getPages": [Function],
"getPagesBuild": [Function],
"getParticipationStats": [Function],
"getProtectedBranchAdminEnforcement": [Function],
"getProtectedBranchPullRequestReviewEnforcement": [Function],
"getProtectedBranchRequiredSignatures": [Function],
"getProtectedBranchRequiredStatusChecks": [Function],
"getProtectedBranchRestrictions": [Function],
"getPullRequestReviewProtection": [Function],
"getPunchCardStats": [Function],
"getReadme": [Function],
"getRelease": [Function],
"getReleaseAsset": [Function],
"getReleaseByTag": [Function],
"getStatusChecksProtection": [Function],
"getTeamsWithAccessToProtectedBranch": [Function],
"getTopPaths": [Function],
"getTopReferrers": [Function],
"getUsersWithAccessToProtectedBranch": [Function],
"getViews": [Function],
"getWebhook": [Function],
"list": [Function],
"listAssetsForRelease": [Function],
"listBranches": [Function],
"listBranchesForHeadCommit": [Function],
"listCollaborators": [Function],
"listCommentsForCommit": [Function],
"listCommitComments": [Function],
"listCommitCommentsForRepo": [Function],
"listCommitStatusesForRef": [Function],
"listCommits": [Function],
"listContributors": [Function],
"listDeployKeys": [Function],
"listDeploymentStatuses": [Function],
"listDeployments": [Function],
"listDownloads": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForUser": [Function],
"listForks": [Function],
"listHooks": [Function],
"listInvitations": [Function],
"listInvitationsForAuthenticatedUser": [Function],
"listLanguages": [Function],
"listPagesBuilds": [Function],
"listProtectedBranchRequiredStatusChecksContexts": [Function],
"listPublic": [Function],
"listPullRequestsAssociatedWithCommit": [Function],
"listReleaseAssets": [Function],
"listReleases": [Function],
"listStatusesForRef": [Function],
"listTags": [Function],
"listTeams": [Function],
"listTopics": [Function],
"listWebhooks": [Function],
"merge": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"removeAppAccessRestrictions": [Function],
"removeBranchProtection": [Function],
"removeCollaborator": [Function],
"removeDeployKey": [Function],
"removeProtectedBranchAdminEnforcement": [Function],
"removeProtectedBranchAppRestrictions": [Function],
"removeProtectedBranchPullRequestReviewEnforcement": [Function],
"removeProtectedBranchRequiredSignatures": [Function],
"removeProtectedBranchRequiredStatusChecks": [Function],
"removeProtectedBranchRequiredStatusChecksContexts": [Function],
"removeProtectedBranchRestrictions": [Function],
"removeProtectedBranchTeamRestrictions": [Function],
"removeProtectedBranchUserRestrictions": [Function],
"removeStatusCheckContexts": [Function],
"removeStatusCheckProtection": [Function],
"removeTeamAccessRestrictions": [Function],
"removeUserAccessRestrictions": [Function],
"replaceAllTopics": [Function],
"replaceProtectedBranchAppRestrictions": [Function],
"replaceProtectedBranchRequiredStatusChecksContexts": [Function],
"replaceProtectedBranchTeamRestrictions": [Function],
"replaceProtectedBranchUserRestrictions": [Function],
"replaceTopics": [Function],
"requestPageBuild": [Function],
"requestPagesBuild": [Function],
"retrieveCommunityProfileMetrics": [Function],
"setAdminBranchProtection": [Function],
"setAppAccessRestrictions": [Function],
"setStatusCheckContexts": [Function],
"setTeamAccessRestrictions": [Function],
"setUserAccessRestrictions": [Function],
"testPushHook": [Function],
"testPushWebhook": [Function],
"transfer": [Function],
"update": [Function],
"updateBranchProtection": [Function],
"updateCommitComment": [Function],
"updateHook": [Function],
"updateInformationAboutPagesSite": [Function],
"updateInvitation": [Function],
"updateProtectedBranchPullRequestReviewEnforcement": [Function],
"updateProtectedBranchRequiredStatusChecks": [Function],
"updatePullRequestReviewProtection": [Function],
"updateRelease": [Function],
"updateReleaseAsset": [Function],
"updateStatusCheckPotection": [Function],
"updateWebhook": [Function],
"uploadReleaseAsset": [Function],
},
"request": [Function],
"search": Object {
"code": [Function],
"commits": [Function],
"issuesAndPullRequests": [Function],
"labels": [Function],
"repos": [Function],
"topics": [Function],
"users": [Function],
},
"teams": Object {
"addOrUpdateMembershipForUserInOrg": [Function],
"addOrUpdateMembershipInOrg": [Function],
"addOrUpdateProjectInOrg": [Function],
"addOrUpdateProjectPermissionsInOrg": [Function],
"addOrUpdateRepoInOrg": [Function],
"addOrUpdateRepoPermissionsInOrg": [Function],
"checkManagesRepoInOrg": [Function],
"checkPermissionsForProjectInOrg": [Function],
"checkPermissionsForRepoInOrg": [Function],
"create": [Function],
"createDiscussionCommentInOrg": [Function],
"createDiscussionInOrg": [Function],
"deleteDiscussionCommentInOrg": [Function],
"deleteDiscussionInOrg": [Function],
"deleteInOrg": [Function],
"getByName": [Function],
"getDiscussionCommentInOrg": [Function],
"getDiscussionInOrg": [Function],
"getMembershipForUserInOrg": [Function],
"getMembershipInOrg": [Function],
"list": [Function],
"listChildInOrg": [Function],
"listDiscussionCommentsInOrg": [Function],
"listDiscussionsInOrg": [Function],
"listForAuthenticatedUser": [Function],
"listMembersInOrg": [Function],
"listPendingInvitationsInOrg": [Function],
"listProjectsInOrg": [Function],
"listReposInOrg": [Function],
"removeMembershipForUserInOrg": [Function],
"removeMembershipInOrg": [Function],
"removeProjectInOrg": [Function],
"removeRepoInOrg": [Function],
"reviewProjectInOrg": [Function],
"updateDiscussionCommentInOrg": [Function],
"updateDiscussionInOrg": [Function],
"updateInOrg": [Function],
},
"users": Object {
"addEmailForAuthenticated": [Function],
"addEmails": [Function],
"block": [Function],
"checkBlocked": [Function],
"checkFollowing": [Function],
"checkFollowingForUser": [Function],
"checkPersonIsFollowedByAuthenticated": [Function],
"createGpgKey": [Function],
"createGpgKeyForAuthenticated": [Function],
"createPublicKey": [Function],
"createPublicSshKeyForAuthenticated": [Function],
"deleteEmailForAuthenticated": [Function],
"deleteEmails": [Function],
"deleteGpgKey": [Function],
"deleteGpgKeyForAuthenticated": [Function],
"deletePublicKey": [Function],
"deletePublicSshKeyForAuthenticated": [Function],
"follow": [Function],
"getAuthenticated": [Function],
"getByUsername": [Function],
"getContextForUser": [Function],
"getGpgKey": [Function],
"getGpgKeyForAuthenticated": [Function],
"getPublicKey": [Function],
"getPublicSshKeyForAuthenticated": [Function],
"list": [Function],
"listBlocked": [Function],
"listBlockedByAuthenticated": [Function],
"listEmails": [Function],
"listEmailsForAuthenticated": [Function],
"listFollowedByAuthenticated": [Function],
"listFollowersForAuthenticatedUser": [Function],
"listFollowersForUser": [Function],
"listFollowingForAuthenticatedUser": [Function],
"listFollowingForUser": [Function],
"listGpgKeys": [Function],
"listGpgKeysForAuthenticated": [Function],
"listGpgKeysForUser": [Function],
"listPublicEmails": [Function],
"listPublicEmailsForAuthenticated": [Function],
"listPublicKeys": [Function],
"listPublicKeysForUser": [Function],
"listPublicSshKeysForAuthenticated": [Function],
"setPrimaryEmailVisibilityForAuthenticated": [Function],
"togglePrimaryEmailVisibility": [Function],
"unblock": [Function],
"unfollow": [Function],
"updateAuthenticated": [Function],
},
},
},
"hasStorageAnalyticsAfecFeature": [Function],
"isAccountReady": [Function], "isAccountReady": [Function],
"isFixedCollectionWithSharedThroughputSupported": [Function], "isFixedCollectionWithSharedThroughputSupported": [Function],
"isHostedDataExplorerEnabled": [Function], "isHostedDataExplorerEnabled": [Function],
"isLeftPaneExpanded": [Function], "isLeftPaneExpanded": [Function],
"isMongoIndexingEnabled": [Function],
"isNotebookEnabled": [Function], "isNotebookEnabled": [Function],
"isNotebooksEnabledForAccount": [Function], "isNotebooksEnabledForAccount": [Function],
"isPublishNotebookPaneEnabled": [Function],
"isResourceTokenCollectionNodeSelected": [Function], "isResourceTokenCollectionNodeSelected": [Function],
"isSchemaEnabled": [Function], "isSchemaEnabled": [Function],
"isServerlessEnabled": [Function], "isServerlessEnabled": [Function],
"isShellEnabled": [Function], "isShellEnabled": [Function],
"isSparkEnabled": [Function],
"isSparkEnabledForAccount": [Function],
"isSynapseLinkUpdating": [Function], "isSynapseLinkUpdating": [Function],
"isTabsContentExpanded": [Function], "isTabsContentExpanded": [Function],
"junoClient": JunoClient {
"cachedPinnedRepos": [Function],
},
"memoryUsageInfo": [Function], "memoryUsageInfo": [Function],
"notebookBasePath": [Function], "notebookBasePath": [Function],
"notebookServerInfo": [Function], "notebookServerInfo": [Function],
"onGitHubClientError": [Function],
"onRefreshDatabasesKeyPress": [Function], "onRefreshDatabasesKeyPress": [Function],
"onRefreshResourcesClick": [Function], "onRefreshResourcesClick": [Function],
"openSidePanel": undefined, "openSidePanel": undefined,

View File

@ -7,12 +7,8 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
errorMessage="Could not create directory " errorMessage="Could not create directory "
explorer={ explorer={
Explorer { Explorer {
"_isAfecFeatureRegistered": [Function],
"_isInitializingNotebooks": false, "_isInitializingNotebooks": false,
"_refreshSparkEnabledStateForAccount": [Function],
"_resetNotebookWorkspace": [Function], "_resetNotebookWorkspace": [Function],
"arcadiaToken": [Function],
"canExceedMaximumValue": [Function],
"canSaveQueries": [Function], "canSaveQueries": [Function],
"closeSidePanel": undefined, "closeSidePanel": undefined,
"collapsedResourceTreeWidth": 36, "collapsedResourceTreeWidth": 36,
@ -33,797 +29,21 @@ exports[`StringInput Pane should render Create new directory properly 1`] = `
"tabsButtons": Array [], "tabsButtons": Array [],
}, },
"databases": [Function], "databases": [Function],
"gitHubClient": GitHubClient {
"errorCallback": [Function],
"ocktokit": OctokitWithDefaults {
"actions": Object {
"addSelectedRepoToOrgSecret": [Function],
"cancelWorkflowRun": [Function],
"createOrUpdateOrgSecret": [Function],
"createOrUpdateRepoSecret": [Function],
"createOrUpdateSecretForRepo": [Function],
"createRegistrationToken": [Function],
"createRegistrationTokenForOrg": [Function],
"createRegistrationTokenForRepo": [Function],
"createRemoveToken": [Function],
"createRemoveTokenForOrg": [Function],
"createRemoveTokenForRepo": [Function],
"deleteArtifact": [Function],
"deleteOrgSecret": [Function],
"deleteRepoSecret": [Function],
"deleteSecretFromRepo": [Function],
"deleteSelfHostedRunnerFromOrg": [Function],
"deleteSelfHostedRunnerFromRepo": [Function],
"deleteWorkflowRunLogs": [Function],
"downloadArtifact": [Function],
"downloadJobLogsForWorkflowRun": [Function],
"downloadWorkflowJobLogs": [Function],
"downloadWorkflowRunLogs": [Function],
"getArtifact": [Function],
"getJobForWorkflowRun": [Function],
"getOrgPublicKey": [Function],
"getOrgSecret": [Function],
"getPublicKey": [Function],
"getRepoPublicKey": [Function],
"getRepoSecret": [Function],
"getSecret": [Function],
"getSelfHostedRunner": [Function],
"getSelfHostedRunnerForOrg": [Function],
"getSelfHostedRunnerForRepo": [Function],
"getWorkflow": [Function],
"getWorkflowJob": [Function],
"getWorkflowRun": [Function],
"getWorkflowRunUsage": [Function],
"getWorkflowUsage": [Function],
"listArtifactsForRepo": [Function],
"listDownloadsForSelfHostedRunnerApplication": [Function],
"listJobsForWorkflowRun": [Function],
"listOrgSecrets": [Function],
"listRepoSecrets": [Function],
"listRepoWorkflowRuns": [Function],
"listRepoWorkflows": [Function],
"listRunnerApplicationsForOrg": [Function],
"listRunnerApplicationsForRepo": [Function],
"listSecretsForRepo": [Function],
"listSelectedReposForOrgSecret": [Function],
"listSelfHostedRunnersForOrg": [Function],
"listSelfHostedRunnersForRepo": [Function],
"listWorkflowJobLogs": [Function],
"listWorkflowRunArtifacts": [Function],
"listWorkflowRunLogs": [Function],
"listWorkflowRuns": [Function],
"listWorkflowRunsForRepo": [Function],
"reRunWorkflow": [Function],
"removeSelectedRepoFromOrgSecret": [Function],
"removeSelfHostedRunner": [Function],
"setSelectedReposForOrgSecret": [Function],
},
"activity": Object {
"checkRepoIsStarredByAuthenticatedUser": [Function],
"checkStarringRepo": [Function],
"deleteRepoSubscription": [Function],
"deleteThreadSubscription": [Function],
"getFeeds": [Function],
"getRepoSubscription": [Function],
"getThread": [Function],
"getThreadSubscription": [Function],
"getThreadSubscriptionForAuthenticatedUser": [Function],
"listEventsForAuthenticatedUser": [Function],
"listEventsForOrg": [Function],
"listEventsForUser": [Function],
"listFeeds": [Function],
"listNotifications": [Function],
"listNotificationsForAuthenticatedUser": [Function],
"listNotificationsForRepo": [Function],
"listOrgEventsForAuthenticatedUser": [Function],
"listPublicEvents": [Function],
"listPublicEventsForOrg": [Function],
"listPublicEventsForRepoNetwork": [Function],
"listPublicEventsForUser": [Function],
"listPublicOrgEvents": [Function],
"listReceivedEventsForUser": [Function],
"listReceivedPublicEventsForUser": [Function],
"listRepoEvents": [Function],
"listRepoNotificationsForAuthenticatedUser": [Function],
"listReposStarredByAuthenticatedUser": [Function],
"listReposStarredByUser": [Function],
"listReposWatchedByUser": [Function],
"listStargazersForRepo": [Function],
"listWatchedReposForAuthenticatedUser": [Function],
"listWatchersForRepo": [Function],
"markAsRead": [Function],
"markNotificationsAsRead": [Function],
"markNotificationsAsReadForRepo": [Function],
"markRepoNotificationsAsRead": [Function],
"markThreadAsRead": [Function],
"setRepoSubscription": [Function],
"setThreadSubscription": [Function],
"starRepo": [Function],
"starRepoForAuthenticatedUser": [Function],
"unstarRepo": [Function],
"unstarRepoForAuthenticatedUser": [Function],
},
"apps": Object {
"addRepoToInstallation": [Function],
"checkAccountIsAssociatedWithAny": [Function],
"checkAccountIsAssociatedWithAnyStubbed": [Function],
"checkToken": [Function],
"createContentAttachment": [Function],
"createFromManifest": [Function],
"createInstallationAccessToken": [Function],
"createInstallationToken": [Function],
"deleteAuthorization": [Function],
"deleteInstallation": [Function],
"deleteToken": [Function],
"getAuthenticated": [Function],
"getBySlug": [Function],
"getInstallation": [Function],
"getOrgInstallation": [Function],
"getRepoInstallation": [Function],
"getSubscriptionPlanForAccount": [Function],
"getSubscriptionPlanForAccountStubbed": [Function],
"getUserInstallation": [Function],
"listAccountsForPlan": [Function],
"listAccountsForPlanStubbed": [Function],
"listAccountsUserOrOrgOnPlan": [Function],
"listAccountsUserOrOrgOnPlanStubbed": [Function],
"listInstallationReposForAuthenticatedUser": [Function],
"listInstallations": [Function],
"listInstallationsForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUserStubbed": [Function],
"listPlans": [Function],
"listPlansStubbed": [Function],
"listRepos": [Function],
"listReposAccessibleToInstallation": [Function],
"listSubscriptionsForAuthenticatedUser": [Function],
"listSubscriptionsForAuthenticatedUserStubbed": [Function],
"removeRepoFromInstallation": [Function],
"resetToken": [Function],
"revokeInstallationAccessToken": [Function],
"revokeInstallationToken": [Function],
"suspendInstallation": [Function],
"unsuspendInstallation": [Function],
},
"auth": [Function],
"checks": Object {
"create": [Function],
"createSuite": [Function],
"get": [Function],
"getSuite": [Function],
"listAnnotations": [Function],
"listForRef": [Function],
"listForSuite": [Function],
"listSuitesForRef": [Function],
"rerequestSuite": [Function],
"setSuitesPreferences": [Function],
"update": [Function],
},
"codeScanning": Object {
"getAlert": [Function],
"listAlertsForRepo": [Function],
},
"codesOfConduct": Object {
"getAllCodesOfConduct": [Function],
"getConductCode": [Function],
"getForRepo": [Function],
"listConductCodes": [Function],
},
"emojis": Object {
"get": [Function],
},
"gists": Object {
"checkIsStarred": [Function],
"create": [Function],
"createComment": [Function],
"delete": [Function],
"deleteComment": [Function],
"fork": [Function],
"get": [Function],
"getComment": [Function],
"getRevision": [Function],
"list": [Function],
"listComments": [Function],
"listCommits": [Function],
"listForUser": [Function],
"listForks": [Function],
"listPublic": [Function],
"listPublicForUser": [Function],
"listStarred": [Function],
"star": [Function],
"unstar": [Function],
"update": [Function],
"updateComment": [Function],
},
"git": Object {
"createBlob": [Function],
"createCommit": [Function],
"createRef": [Function],
"createTag": [Function],
"createTree": [Function],
"deleteRef": [Function],
"getBlob": [Function],
"getCommit": [Function],
"getRef": [Function],
"getTag": [Function],
"getTree": [Function],
"listMatchingRefs": [Function],
"updateRef": [Function],
},
"gitignore": Object {
"getAllTemplates": [Function],
"getTemplate": [Function],
"listTemplates": [Function],
},
"graphql": [Function],
"hook": [Function],
"interactions": Object {
"addOrUpdateRestrictionsForOrg": [Function],
"addOrUpdateRestrictionsForRepo": [Function],
"getRestrictionsForOrg": [Function],
"getRestrictionsForRepo": [Function],
"removeRestrictionsForOrg": [Function],
"removeRestrictionsForRepo": [Function],
"setRestrictionsForOrg": [Function],
"setRestrictionsForRepo": [Function],
},
"issues": Object {
"addAssignees": [Function],
"addLabels": [Function],
"checkAssignee": [Function],
"checkUserCanBeAssigned": [Function],
"create": [Function],
"createComment": [Function],
"createLabel": [Function],
"createMilestone": [Function],
"deleteComment": [Function],
"deleteLabel": [Function],
"deleteMilestone": [Function],
"get": [Function],
"getComment": [Function],
"getEvent": [Function],
"getLabel": [Function],
"getMilestone": [Function],
"list": [Function],
"listAssignees": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listEvents": [Function],
"listEventsForRepo": [Function],
"listEventsForTimeline": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listLabelsForMilestone": [Function],
"listLabelsForRepo": [Function],
"listLabelsOnIssue": [Function],
"listMilestones": [Function],
"listMilestonesForRepo": [Function],
"lock": [Function],
"removeAllLabels": [Function],
"removeAssignees": [Function],
"removeLabel": [Function],
"removeLabels": [Function],
"replaceAllLabels": [Function],
"replaceLabels": [Function],
"setLabels": [Function],
"unlock": [Function],
"update": [Function],
"updateComment": [Function],
"updateLabel": [Function],
"updateMilestone": [Function],
},
"licenses": Object {
"get": [Function],
"getAllCommonlyUsed": [Function],
"getForRepo": [Function],
"listCommonlyUsed": [Function],
},
"log": Object {
"debug": [Function],
"error": [Function],
"info": [Function],
"warn": [Function],
},
"markdown": Object {
"render": [Function],
"renderRaw": [Function],
},
"meta": Object {
"get": [Function],
},
"migrations": Object {
"cancelImport": [Function],
"deleteArchiveForAuthenticatedUser": [Function],
"deleteArchiveForOrg": [Function],
"downloadArchiveForOrg": [Function],
"getArchiveForAuthenticatedUser": [Function],
"getCommitAuthors": [Function],
"getImportProgress": [Function],
"getImportStatus": [Function],
"getLargeFiles": [Function],
"getStatusForAuthenticatedUser": [Function],
"getStatusForOrg": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listReposForOrg": [Function],
"listReposForUser": [Function],
"mapCommitAuthor": [Function],
"setLfsPreference": [Function],
"startForAuthenticatedUser": [Function],
"startForOrg": [Function],
"startImport": [Function],
"unlockRepoForAuthenticatedUser": [Function],
"unlockRepoForOrg": [Function],
"updateImport": [Function],
},
"orgs": Object {
"addOrUpdateMembership": [Function],
"blockUser": [Function],
"checkBlockedUser": [Function],
"checkMembership": [Function],
"checkMembershipForUser": [Function],
"checkPublicMembership": [Function],
"checkPublicMembershipForUser": [Function],
"concealMembership": [Function],
"convertMemberToOutsideCollaborator": [Function],
"createHook": [Function],
"createInvitation": [Function],
"createWebhook": [Function],
"deleteHook": [Function],
"deleteWebhook": [Function],
"get": [Function],
"getHook": [Function],
"getMembership": [Function],
"getMembershipForAuthenticatedUser": [Function],
"getMembershipForUser": [Function],
"getWebhook": [Function],
"list": [Function],
"listAppInstallations": [Function],
"listBlockedUsers": [Function],
"listForAuthenticatedUser": [Function],
"listForUser": [Function],
"listHooks": [Function],
"listInstallations": [Function],
"listInvitationTeams": [Function],
"listMembers": [Function],
"listMemberships": [Function],
"listMembershipsForAuthenticatedUser": [Function],
"listOutsideCollaborators": [Function],
"listPendingInvitations": [Function],
"listPublicMembers": [Function],
"listWebhooks": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"publicizeMembership": [Function],
"removeMember": [Function],
"removeMembership": [Function],
"removeMembershipForUser": [Function],
"removeOutsideCollaborator": [Function],
"removePublicMembershipForAuthenticatedUser": [Function],
"setMembershipForUser": [Function],
"setPublicMembershipForAuthenticatedUser": [Function],
"unblockUser": [Function],
"update": [Function],
"updateHook": [Function],
"updateMembership": [Function],
"updateMembershipForAuthenticatedUser": [Function],
"updateWebhook": [Function],
},
"paginate": [Function],
"projects": Object {
"addCollaborator": [Function],
"createCard": [Function],
"createColumn": [Function],
"createForAuthenticatedUser": [Function],
"createForOrg": [Function],
"createForRepo": [Function],
"delete": [Function],
"deleteCard": [Function],
"deleteColumn": [Function],
"get": [Function],
"getCard": [Function],
"getColumn": [Function],
"getPermissionForUser": [Function],
"listCards": [Function],
"listCollaborators": [Function],
"listColumns": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listForUser": [Function],
"moveCard": [Function],
"moveColumn": [Function],
"removeCollaborator": [Function],
"reviewUserPermissionLevel": [Function],
"update": [Function],
"updateCard": [Function],
"updateColumn": [Function],
},
"pulls": Object {
"checkIfMerged": [Function],
"create": [Function],
"createComment": [Function],
"createReplyForReviewComment": [Function],
"createReview": [Function],
"createReviewComment": [Function],
"createReviewCommentReply": [Function],
"createReviewRequest": [Function],
"deleteComment": [Function],
"deletePendingReview": [Function],
"deleteReviewComment": [Function],
"deleteReviewRequest": [Function],
"dismissReview": [Function],
"get": [Function],
"getComment": [Function],
"getCommentsForReview": [Function],
"getReview": [Function],
"getReviewComment": [Function],
"list": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listCommentsForReview": [Function],
"listCommits": [Function],
"listFiles": [Function],
"listRequestedReviewers": [Function],
"listReviewComments": [Function],
"listReviewCommentsForRepo": [Function],
"listReviewRequests": [Function],
"listReviews": [Function],
"merge": [Function],
"removeRequestedReviewers": [Function],
"requestReviewers": [Function],
"submitReview": [Function],
"update": [Function],
"updateBranch": [Function],
"updateComment": [Function],
"updateReview": [Function],
"updateReviewComment": [Function],
},
"rateLimit": Object {
"get": [Function],
},
"reactions": Object {
"createForCommitComment": [Function],
"createForIssue": [Function],
"createForIssueComment": [Function],
"createForPullRequestReviewComment": [Function],
"createForTeamDiscussionCommentInOrg": [Function],
"createForTeamDiscussionInOrg": [Function],
"delete": [Function],
"deleteForCommitComment": [Function],
"deleteForIssue": [Function],
"deleteForIssueComment": [Function],
"deleteForPullRequestComment": [Function],
"deleteForTeamDiscussion": [Function],
"deleteForTeamDiscussionComment": [Function],
"deleteLegacy": [Function],
"listForCommitComment": [Function],
"listForIssue": [Function],
"listForIssueComment": [Function],
"listForPullRequestReviewComment": [Function],
"listForTeamDiscussionCommentInOrg": [Function],
"listForTeamDiscussionInOrg": [Function],
},
"repos": Object {
"acceptInvitation": [Function],
"addAppAccessRestrictions": [Function],
"addCollaborator": [Function],
"addDeployKey": [Function],
"addProtectedBranchAdminEnforcement": [Function],
"addProtectedBranchAppRestrictions": [Function],
"addProtectedBranchRequiredSignatures": [Function],
"addProtectedBranchRequiredStatusChecksContexts": [Function],
"addProtectedBranchTeamRestrictions": [Function],
"addProtectedBranchUserRestrictions": [Function],
"addStatusCheckContexts": [Function],
"addTeamAccessRestrictions": [Function],
"addUserAccessRestrictions": [Function],
"checkCollaborator": [Function],
"checkVulnerabilityAlerts": [Function],
"compareCommits": [Function],
"createCommitComment": [Function],
"createCommitSignatureProtection": [Function],
"createCommitStatus": [Function],
"createDeployKey": [Function],
"createDeployment": [Function],
"createDeploymentStatus": [Function],
"createDispatchEvent": [Function],
"createForAuthenticatedUser": [Function],
"createFork": [Function],
"createHook": [Function],
"createInOrg": [Function],
"createOrUpdateFile": [Function],
"createOrUpdateFileContents": [Function],
"createPagesSite": [Function],
"createRelease": [Function],
"createStatus": [Function],
"createUsingTemplate": [Function],
"createWebhook": [Function],
"declineInvitation": [Function],
"delete": [Function],
"deleteAccessRestrictions": [Function],
"deleteAdminBranchProtection": [Function],
"deleteBranchProtection": [Function],
"deleteCommitComment": [Function],
"deleteCommitSignatureProtection": [Function],
"deleteDeployKey": [Function],
"deleteDeployment": [Function],
"deleteDownload": [Function],
"deleteFile": [Function],
"deleteHook": [Function],
"deleteInvitation": [Function],
"deletePagesSite": [Function],
"deletePullRequestReviewProtection": [Function],
"deleteRelease": [Function],
"deleteReleaseAsset": [Function],
"deleteWebhook": [Function],
"disableAutomatedSecurityFixes": [Function],
"disablePagesSite": [Function],
"disableVulnerabilityAlerts": [Function],
"downloadArchive": [Function],
"enableAutomatedSecurityFixes": [Function],
"enablePagesSite": [Function],
"enableVulnerabilityAlerts": [Function],
"get": [Function],
"getAccessRestrictions": [Function],
"getAdminBranchProtection": [Function],
"getAllStatusCheckContexts": [Function],
"getAllTopics": [Function],
"getAppsWithAccessToProtectedBranch": [Function],
"getArchiveLink": [Function],
"getBranch": [Function],
"getBranchProtection": [Function],
"getClones": [Function],
"getCodeFrequencyStats": [Function],
"getCollaboratorPermissionLevel": [Function],
"getCombinedStatusForRef": [Function],
"getCommit": [Function],
"getCommitActivityStats": [Function],
"getCommitComment": [Function],
"getCommitSignatureProtection": [Function],
"getCommunityProfileMetrics": [Function],
"getContent": [Function],
"getContents": [Function],
"getContributorsStats": [Function],
"getDeployKey": [Function],
"getDeployment": [Function],
"getDeploymentStatus": [Function],
"getDownload": [Function],
"getHook": [Function],
"getLatestPagesBuild": [Function],
"getLatestRelease": [Function],
"getPages": [Function],
"getPagesBuild": [Function],
"getParticipationStats": [Function],
"getProtectedBranchAdminEnforcement": [Function],
"getProtectedBranchPullRequestReviewEnforcement": [Function],
"getProtectedBranchRequiredSignatures": [Function],
"getProtectedBranchRequiredStatusChecks": [Function],
"getProtectedBranchRestrictions": [Function],
"getPullRequestReviewProtection": [Function],
"getPunchCardStats": [Function],
"getReadme": [Function],
"getRelease": [Function],
"getReleaseAsset": [Function],
"getReleaseByTag": [Function],
"getStatusChecksProtection": [Function],
"getTeamsWithAccessToProtectedBranch": [Function],
"getTopPaths": [Function],
"getTopReferrers": [Function],
"getUsersWithAccessToProtectedBranch": [Function],
"getViews": [Function],
"getWebhook": [Function],
"list": [Function],
"listAssetsForRelease": [Function],
"listBranches": [Function],
"listBranchesForHeadCommit": [Function],
"listCollaborators": [Function],
"listCommentsForCommit": [Function],
"listCommitComments": [Function],
"listCommitCommentsForRepo": [Function],
"listCommitStatusesForRef": [Function],
"listCommits": [Function],
"listContributors": [Function],
"listDeployKeys": [Function],
"listDeploymentStatuses": [Function],
"listDeployments": [Function],
"listDownloads": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForUser": [Function],
"listForks": [Function],
"listHooks": [Function],
"listInvitations": [Function],
"listInvitationsForAuthenticatedUser": [Function],
"listLanguages": [Function],
"listPagesBuilds": [Function],
"listProtectedBranchRequiredStatusChecksContexts": [Function],
"listPublic": [Function],
"listPullRequestsAssociatedWithCommit": [Function],
"listReleaseAssets": [Function],
"listReleases": [Function],
"listStatusesForRef": [Function],
"listTags": [Function],
"listTeams": [Function],
"listTopics": [Function],
"listWebhooks": [Function],
"merge": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"removeAppAccessRestrictions": [Function],
"removeBranchProtection": [Function],
"removeCollaborator": [Function],
"removeDeployKey": [Function],
"removeProtectedBranchAdminEnforcement": [Function],
"removeProtectedBranchAppRestrictions": [Function],
"removeProtectedBranchPullRequestReviewEnforcement": [Function],
"removeProtectedBranchRequiredSignatures": [Function],
"removeProtectedBranchRequiredStatusChecks": [Function],
"removeProtectedBranchRequiredStatusChecksContexts": [Function],
"removeProtectedBranchRestrictions": [Function],
"removeProtectedBranchTeamRestrictions": [Function],
"removeProtectedBranchUserRestrictions": [Function],
"removeStatusCheckContexts": [Function],
"removeStatusCheckProtection": [Function],
"removeTeamAccessRestrictions": [Function],
"removeUserAccessRestrictions": [Function],
"replaceAllTopics": [Function],
"replaceProtectedBranchAppRestrictions": [Function],
"replaceProtectedBranchRequiredStatusChecksContexts": [Function],
"replaceProtectedBranchTeamRestrictions": [Function],
"replaceProtectedBranchUserRestrictions": [Function],
"replaceTopics": [Function],
"requestPageBuild": [Function],
"requestPagesBuild": [Function],
"retrieveCommunityProfileMetrics": [Function],
"setAdminBranchProtection": [Function],
"setAppAccessRestrictions": [Function],
"setStatusCheckContexts": [Function],
"setTeamAccessRestrictions": [Function],
"setUserAccessRestrictions": [Function],
"testPushHook": [Function],
"testPushWebhook": [Function],
"transfer": [Function],
"update": [Function],
"updateBranchProtection": [Function],
"updateCommitComment": [Function],
"updateHook": [Function],
"updateInformationAboutPagesSite": [Function],
"updateInvitation": [Function],
"updateProtectedBranchPullRequestReviewEnforcement": [Function],
"updateProtectedBranchRequiredStatusChecks": [Function],
"updatePullRequestReviewProtection": [Function],
"updateRelease": [Function],
"updateReleaseAsset": [Function],
"updateStatusCheckPotection": [Function],
"updateWebhook": [Function],
"uploadReleaseAsset": [Function],
},
"request": [Function],
"search": Object {
"code": [Function],
"commits": [Function],
"issuesAndPullRequests": [Function],
"labels": [Function],
"repos": [Function],
"topics": [Function],
"users": [Function],
},
"teams": Object {
"addOrUpdateMembershipForUserInOrg": [Function],
"addOrUpdateMembershipInOrg": [Function],
"addOrUpdateProjectInOrg": [Function],
"addOrUpdateProjectPermissionsInOrg": [Function],
"addOrUpdateRepoInOrg": [Function],
"addOrUpdateRepoPermissionsInOrg": [Function],
"checkManagesRepoInOrg": [Function],
"checkPermissionsForProjectInOrg": [Function],
"checkPermissionsForRepoInOrg": [Function],
"create": [Function],
"createDiscussionCommentInOrg": [Function],
"createDiscussionInOrg": [Function],
"deleteDiscussionCommentInOrg": [Function],
"deleteDiscussionInOrg": [Function],
"deleteInOrg": [Function],
"getByName": [Function],
"getDiscussionCommentInOrg": [Function],
"getDiscussionInOrg": [Function],
"getMembershipForUserInOrg": [Function],
"getMembershipInOrg": [Function],
"list": [Function],
"listChildInOrg": [Function],
"listDiscussionCommentsInOrg": [Function],
"listDiscussionsInOrg": [Function],
"listForAuthenticatedUser": [Function],
"listMembersInOrg": [Function],
"listPendingInvitationsInOrg": [Function],
"listProjectsInOrg": [Function],
"listReposInOrg": [Function],
"removeMembershipForUserInOrg": [Function],
"removeMembershipInOrg": [Function],
"removeProjectInOrg": [Function],
"removeRepoInOrg": [Function],
"reviewProjectInOrg": [Function],
"updateDiscussionCommentInOrg": [Function],
"updateDiscussionInOrg": [Function],
"updateInOrg": [Function],
},
"users": Object {
"addEmailForAuthenticated": [Function],
"addEmails": [Function],
"block": [Function],
"checkBlocked": [Function],
"checkFollowing": [Function],
"checkFollowingForUser": [Function],
"checkPersonIsFollowedByAuthenticated": [Function],
"createGpgKey": [Function],
"createGpgKeyForAuthenticated": [Function],
"createPublicKey": [Function],
"createPublicSshKeyForAuthenticated": [Function],
"deleteEmailForAuthenticated": [Function],
"deleteEmails": [Function],
"deleteGpgKey": [Function],
"deleteGpgKeyForAuthenticated": [Function],
"deletePublicKey": [Function],
"deletePublicSshKeyForAuthenticated": [Function],
"follow": [Function],
"getAuthenticated": [Function],
"getByUsername": [Function],
"getContextForUser": [Function],
"getGpgKey": [Function],
"getGpgKeyForAuthenticated": [Function],
"getPublicKey": [Function],
"getPublicSshKeyForAuthenticated": [Function],
"list": [Function],
"listBlocked": [Function],
"listBlockedByAuthenticated": [Function],
"listEmails": [Function],
"listEmailsForAuthenticated": [Function],
"listFollowedByAuthenticated": [Function],
"listFollowersForAuthenticatedUser": [Function],
"listFollowersForUser": [Function],
"listFollowingForAuthenticatedUser": [Function],
"listFollowingForUser": [Function],
"listGpgKeys": [Function],
"listGpgKeysForAuthenticated": [Function],
"listGpgKeysForUser": [Function],
"listPublicEmails": [Function],
"listPublicEmailsForAuthenticated": [Function],
"listPublicKeys": [Function],
"listPublicKeysForUser": [Function],
"listPublicSshKeysForAuthenticated": [Function],
"setPrimaryEmailVisibilityForAuthenticated": [Function],
"togglePrimaryEmailVisibility": [Function],
"unblock": [Function],
"unfollow": [Function],
"updateAuthenticated": [Function],
},
},
},
"hasStorageAnalyticsAfecFeature": [Function],
"isAccountReady": [Function], "isAccountReady": [Function],
"isFixedCollectionWithSharedThroughputSupported": [Function], "isFixedCollectionWithSharedThroughputSupported": [Function],
"isHostedDataExplorerEnabled": [Function], "isHostedDataExplorerEnabled": [Function],
"isLeftPaneExpanded": [Function], "isLeftPaneExpanded": [Function],
"isMongoIndexingEnabled": [Function],
"isNotebookEnabled": [Function], "isNotebookEnabled": [Function],
"isNotebooksEnabledForAccount": [Function], "isNotebooksEnabledForAccount": [Function],
"isPublishNotebookPaneEnabled": [Function],
"isResourceTokenCollectionNodeSelected": [Function], "isResourceTokenCollectionNodeSelected": [Function],
"isSchemaEnabled": [Function], "isSchemaEnabled": [Function],
"isServerlessEnabled": [Function], "isServerlessEnabled": [Function],
"isShellEnabled": [Function], "isShellEnabled": [Function],
"isSparkEnabled": [Function],
"isSparkEnabledForAccount": [Function],
"isSynapseLinkUpdating": [Function], "isSynapseLinkUpdating": [Function],
"isTabsContentExpanded": [Function], "isTabsContentExpanded": [Function],
"junoClient": JunoClient {
"cachedPinnedRepos": [Function],
},
"memoryUsageInfo": [Function], "memoryUsageInfo": [Function],
"notebookBasePath": [Function], "notebookBasePath": [Function],
"notebookServerInfo": [Function], "notebookServerInfo": [Function],
"onGitHubClientError": [Function],
"onRefreshDatabasesKeyPress": [Function], "onRefreshDatabasesKeyPress": [Function],
"onRefreshResourcesClick": [Function], "onRefreshResourcesClick": [Function],
"openSidePanel": undefined, "openSidePanel": undefined,

View File

@ -5,12 +5,8 @@ exports[`Delete Database Confirmation Pane submit() Should call delete database
closePanel={[Function]} closePanel={[Function]}
explorer={ explorer={
Explorer { Explorer {
"_isAfecFeatureRegistered": [Function],
"_isInitializingNotebooks": false, "_isInitializingNotebooks": false,
"_refreshSparkEnabledStateForAccount": [Function],
"_resetNotebookWorkspace": [Function], "_resetNotebookWorkspace": [Function],
"arcadiaToken": [Function],
"canExceedMaximumValue": [Function],
"canSaveQueries": [Function], "canSaveQueries": [Function],
"closeSidePanel": undefined, "closeSidePanel": undefined,
"collapsedResourceTreeWidth": 36, "collapsedResourceTreeWidth": 36,
@ -31,800 +27,24 @@ exports[`Delete Database Confirmation Pane submit() Should call delete database
"tabsButtons": Array [], "tabsButtons": Array [],
}, },
"databases": [Function], "databases": [Function],
"gitHubClient": GitHubClient {
"errorCallback": [Function],
"ocktokit": OctokitWithDefaults {
"actions": Object {
"addSelectedRepoToOrgSecret": [Function],
"cancelWorkflowRun": [Function],
"createOrUpdateOrgSecret": [Function],
"createOrUpdateRepoSecret": [Function],
"createOrUpdateSecretForRepo": [Function],
"createRegistrationToken": [Function],
"createRegistrationTokenForOrg": [Function],
"createRegistrationTokenForRepo": [Function],
"createRemoveToken": [Function],
"createRemoveTokenForOrg": [Function],
"createRemoveTokenForRepo": [Function],
"deleteArtifact": [Function],
"deleteOrgSecret": [Function],
"deleteRepoSecret": [Function],
"deleteSecretFromRepo": [Function],
"deleteSelfHostedRunnerFromOrg": [Function],
"deleteSelfHostedRunnerFromRepo": [Function],
"deleteWorkflowRunLogs": [Function],
"downloadArtifact": [Function],
"downloadJobLogsForWorkflowRun": [Function],
"downloadWorkflowJobLogs": [Function],
"downloadWorkflowRunLogs": [Function],
"getArtifact": [Function],
"getJobForWorkflowRun": [Function],
"getOrgPublicKey": [Function],
"getOrgSecret": [Function],
"getPublicKey": [Function],
"getRepoPublicKey": [Function],
"getRepoSecret": [Function],
"getSecret": [Function],
"getSelfHostedRunner": [Function],
"getSelfHostedRunnerForOrg": [Function],
"getSelfHostedRunnerForRepo": [Function],
"getWorkflow": [Function],
"getWorkflowJob": [Function],
"getWorkflowRun": [Function],
"getWorkflowRunUsage": [Function],
"getWorkflowUsage": [Function],
"listArtifactsForRepo": [Function],
"listDownloadsForSelfHostedRunnerApplication": [Function],
"listJobsForWorkflowRun": [Function],
"listOrgSecrets": [Function],
"listRepoSecrets": [Function],
"listRepoWorkflowRuns": [Function],
"listRepoWorkflows": [Function],
"listRunnerApplicationsForOrg": [Function],
"listRunnerApplicationsForRepo": [Function],
"listSecretsForRepo": [Function],
"listSelectedReposForOrgSecret": [Function],
"listSelfHostedRunnersForOrg": [Function],
"listSelfHostedRunnersForRepo": [Function],
"listWorkflowJobLogs": [Function],
"listWorkflowRunArtifacts": [Function],
"listWorkflowRunLogs": [Function],
"listWorkflowRuns": [Function],
"listWorkflowRunsForRepo": [Function],
"reRunWorkflow": [Function],
"removeSelectedRepoFromOrgSecret": [Function],
"removeSelfHostedRunner": [Function],
"setSelectedReposForOrgSecret": [Function],
},
"activity": Object {
"checkRepoIsStarredByAuthenticatedUser": [Function],
"checkStarringRepo": [Function],
"deleteRepoSubscription": [Function],
"deleteThreadSubscription": [Function],
"getFeeds": [Function],
"getRepoSubscription": [Function],
"getThread": [Function],
"getThreadSubscription": [Function],
"getThreadSubscriptionForAuthenticatedUser": [Function],
"listEventsForAuthenticatedUser": [Function],
"listEventsForOrg": [Function],
"listEventsForUser": [Function],
"listFeeds": [Function],
"listNotifications": [Function],
"listNotificationsForAuthenticatedUser": [Function],
"listNotificationsForRepo": [Function],
"listOrgEventsForAuthenticatedUser": [Function],
"listPublicEvents": [Function],
"listPublicEventsForOrg": [Function],
"listPublicEventsForRepoNetwork": [Function],
"listPublicEventsForUser": [Function],
"listPublicOrgEvents": [Function],
"listReceivedEventsForUser": [Function],
"listReceivedPublicEventsForUser": [Function],
"listRepoEvents": [Function],
"listRepoNotificationsForAuthenticatedUser": [Function],
"listReposStarredByAuthenticatedUser": [Function],
"listReposStarredByUser": [Function],
"listReposWatchedByUser": [Function],
"listStargazersForRepo": [Function],
"listWatchedReposForAuthenticatedUser": [Function],
"listWatchersForRepo": [Function],
"markAsRead": [Function],
"markNotificationsAsRead": [Function],
"markNotificationsAsReadForRepo": [Function],
"markRepoNotificationsAsRead": [Function],
"markThreadAsRead": [Function],
"setRepoSubscription": [Function],
"setThreadSubscription": [Function],
"starRepo": [Function],
"starRepoForAuthenticatedUser": [Function],
"unstarRepo": [Function],
"unstarRepoForAuthenticatedUser": [Function],
},
"apps": Object {
"addRepoToInstallation": [Function],
"checkAccountIsAssociatedWithAny": [Function],
"checkAccountIsAssociatedWithAnyStubbed": [Function],
"checkToken": [Function],
"createContentAttachment": [Function],
"createFromManifest": [Function],
"createInstallationAccessToken": [Function],
"createInstallationToken": [Function],
"deleteAuthorization": [Function],
"deleteInstallation": [Function],
"deleteToken": [Function],
"getAuthenticated": [Function],
"getBySlug": [Function],
"getInstallation": [Function],
"getOrgInstallation": [Function],
"getRepoInstallation": [Function],
"getSubscriptionPlanForAccount": [Function],
"getSubscriptionPlanForAccountStubbed": [Function],
"getUserInstallation": [Function],
"listAccountsForPlan": [Function],
"listAccountsForPlanStubbed": [Function],
"listAccountsUserOrOrgOnPlan": [Function],
"listAccountsUserOrOrgOnPlanStubbed": [Function],
"listInstallationReposForAuthenticatedUser": [Function],
"listInstallations": [Function],
"listInstallationsForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUser": [Function],
"listMarketplacePurchasesForAuthenticatedUserStubbed": [Function],
"listPlans": [Function],
"listPlansStubbed": [Function],
"listRepos": [Function],
"listReposAccessibleToInstallation": [Function],
"listSubscriptionsForAuthenticatedUser": [Function],
"listSubscriptionsForAuthenticatedUserStubbed": [Function],
"removeRepoFromInstallation": [Function],
"resetToken": [Function],
"revokeInstallationAccessToken": [Function],
"revokeInstallationToken": [Function],
"suspendInstallation": [Function],
"unsuspendInstallation": [Function],
},
"auth": [Function],
"checks": Object {
"create": [Function],
"createSuite": [Function],
"get": [Function],
"getSuite": [Function],
"listAnnotations": [Function],
"listForRef": [Function],
"listForSuite": [Function],
"listSuitesForRef": [Function],
"rerequestSuite": [Function],
"setSuitesPreferences": [Function],
"update": [Function],
},
"codeScanning": Object {
"getAlert": [Function],
"listAlertsForRepo": [Function],
},
"codesOfConduct": Object {
"getAllCodesOfConduct": [Function],
"getConductCode": [Function],
"getForRepo": [Function],
"listConductCodes": [Function],
},
"emojis": Object {
"get": [Function],
},
"gists": Object {
"checkIsStarred": [Function],
"create": [Function],
"createComment": [Function],
"delete": [Function],
"deleteComment": [Function],
"fork": [Function],
"get": [Function],
"getComment": [Function],
"getRevision": [Function],
"list": [Function],
"listComments": [Function],
"listCommits": [Function],
"listForUser": [Function],
"listForks": [Function],
"listPublic": [Function],
"listPublicForUser": [Function],
"listStarred": [Function],
"star": [Function],
"unstar": [Function],
"update": [Function],
"updateComment": [Function],
},
"git": Object {
"createBlob": [Function],
"createCommit": [Function],
"createRef": [Function],
"createTag": [Function],
"createTree": [Function],
"deleteRef": [Function],
"getBlob": [Function],
"getCommit": [Function],
"getRef": [Function],
"getTag": [Function],
"getTree": [Function],
"listMatchingRefs": [Function],
"updateRef": [Function],
},
"gitignore": Object {
"getAllTemplates": [Function],
"getTemplate": [Function],
"listTemplates": [Function],
},
"graphql": [Function],
"hook": [Function],
"interactions": Object {
"addOrUpdateRestrictionsForOrg": [Function],
"addOrUpdateRestrictionsForRepo": [Function],
"getRestrictionsForOrg": [Function],
"getRestrictionsForRepo": [Function],
"removeRestrictionsForOrg": [Function],
"removeRestrictionsForRepo": [Function],
"setRestrictionsForOrg": [Function],
"setRestrictionsForRepo": [Function],
},
"issues": Object {
"addAssignees": [Function],
"addLabels": [Function],
"checkAssignee": [Function],
"checkUserCanBeAssigned": [Function],
"create": [Function],
"createComment": [Function],
"createLabel": [Function],
"createMilestone": [Function],
"deleteComment": [Function],
"deleteLabel": [Function],
"deleteMilestone": [Function],
"get": [Function],
"getComment": [Function],
"getEvent": [Function],
"getLabel": [Function],
"getMilestone": [Function],
"list": [Function],
"listAssignees": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listEvents": [Function],
"listEventsForRepo": [Function],
"listEventsForTimeline": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listLabelsForMilestone": [Function],
"listLabelsForRepo": [Function],
"listLabelsOnIssue": [Function],
"listMilestones": [Function],
"listMilestonesForRepo": [Function],
"lock": [Function],
"removeAllLabels": [Function],
"removeAssignees": [Function],
"removeLabel": [Function],
"removeLabels": [Function],
"replaceAllLabels": [Function],
"replaceLabels": [Function],
"setLabels": [Function],
"unlock": [Function],
"update": [Function],
"updateComment": [Function],
"updateLabel": [Function],
"updateMilestone": [Function],
},
"licenses": Object {
"get": [Function],
"getAllCommonlyUsed": [Function],
"getForRepo": [Function],
"listCommonlyUsed": [Function],
},
"log": Object {
"debug": [Function],
"error": [Function],
"info": [Function],
"warn": [Function],
},
"markdown": Object {
"render": [Function],
"renderRaw": [Function],
},
"meta": Object {
"get": [Function],
},
"migrations": Object {
"cancelImport": [Function],
"deleteArchiveForAuthenticatedUser": [Function],
"deleteArchiveForOrg": [Function],
"downloadArchiveForOrg": [Function],
"getArchiveForAuthenticatedUser": [Function],
"getCommitAuthors": [Function],
"getImportProgress": [Function],
"getImportStatus": [Function],
"getLargeFiles": [Function],
"getStatusForAuthenticatedUser": [Function],
"getStatusForOrg": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listReposForOrg": [Function],
"listReposForUser": [Function],
"mapCommitAuthor": [Function],
"setLfsPreference": [Function],
"startForAuthenticatedUser": [Function],
"startForOrg": [Function],
"startImport": [Function],
"unlockRepoForAuthenticatedUser": [Function],
"unlockRepoForOrg": [Function],
"updateImport": [Function],
},
"orgs": Object {
"addOrUpdateMembership": [Function],
"blockUser": [Function],
"checkBlockedUser": [Function],
"checkMembership": [Function],
"checkMembershipForUser": [Function],
"checkPublicMembership": [Function],
"checkPublicMembershipForUser": [Function],
"concealMembership": [Function],
"convertMemberToOutsideCollaborator": [Function],
"createHook": [Function],
"createInvitation": [Function],
"createWebhook": [Function],
"deleteHook": [Function],
"deleteWebhook": [Function],
"get": [Function],
"getHook": [Function],
"getMembership": [Function],
"getMembershipForAuthenticatedUser": [Function],
"getMembershipForUser": [Function],
"getWebhook": [Function],
"list": [Function],
"listAppInstallations": [Function],
"listBlockedUsers": [Function],
"listForAuthenticatedUser": [Function],
"listForUser": [Function],
"listHooks": [Function],
"listInstallations": [Function],
"listInvitationTeams": [Function],
"listMembers": [Function],
"listMemberships": [Function],
"listMembershipsForAuthenticatedUser": [Function],
"listOutsideCollaborators": [Function],
"listPendingInvitations": [Function],
"listPublicMembers": [Function],
"listWebhooks": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"publicizeMembership": [Function],
"removeMember": [Function],
"removeMembership": [Function],
"removeMembershipForUser": [Function],
"removeOutsideCollaborator": [Function],
"removePublicMembershipForAuthenticatedUser": [Function],
"setMembershipForUser": [Function],
"setPublicMembershipForAuthenticatedUser": [Function],
"unblockUser": [Function],
"update": [Function],
"updateHook": [Function],
"updateMembership": [Function],
"updateMembershipForAuthenticatedUser": [Function],
"updateWebhook": [Function],
},
"paginate": [Function],
"projects": Object {
"addCollaborator": [Function],
"createCard": [Function],
"createColumn": [Function],
"createForAuthenticatedUser": [Function],
"createForOrg": [Function],
"createForRepo": [Function],
"delete": [Function],
"deleteCard": [Function],
"deleteColumn": [Function],
"get": [Function],
"getCard": [Function],
"getColumn": [Function],
"getPermissionForUser": [Function],
"listCards": [Function],
"listCollaborators": [Function],
"listColumns": [Function],
"listForOrg": [Function],
"listForRepo": [Function],
"listForUser": [Function],
"moveCard": [Function],
"moveColumn": [Function],
"removeCollaborator": [Function],
"reviewUserPermissionLevel": [Function],
"update": [Function],
"updateCard": [Function],
"updateColumn": [Function],
},
"pulls": Object {
"checkIfMerged": [Function],
"create": [Function],
"createComment": [Function],
"createReplyForReviewComment": [Function],
"createReview": [Function],
"createReviewComment": [Function],
"createReviewCommentReply": [Function],
"createReviewRequest": [Function],
"deleteComment": [Function],
"deletePendingReview": [Function],
"deleteReviewComment": [Function],
"deleteReviewRequest": [Function],
"dismissReview": [Function],
"get": [Function],
"getComment": [Function],
"getCommentsForReview": [Function],
"getReview": [Function],
"getReviewComment": [Function],
"list": [Function],
"listComments": [Function],
"listCommentsForRepo": [Function],
"listCommentsForReview": [Function],
"listCommits": [Function],
"listFiles": [Function],
"listRequestedReviewers": [Function],
"listReviewComments": [Function],
"listReviewCommentsForRepo": [Function],
"listReviewRequests": [Function],
"listReviews": [Function],
"merge": [Function],
"removeRequestedReviewers": [Function],
"requestReviewers": [Function],
"submitReview": [Function],
"update": [Function],
"updateBranch": [Function],
"updateComment": [Function],
"updateReview": [Function],
"updateReviewComment": [Function],
},
"rateLimit": Object {
"get": [Function],
},
"reactions": Object {
"createForCommitComment": [Function],
"createForIssue": [Function],
"createForIssueComment": [Function],
"createForPullRequestReviewComment": [Function],
"createForTeamDiscussionCommentInOrg": [Function],
"createForTeamDiscussionInOrg": [Function],
"delete": [Function],
"deleteForCommitComment": [Function],
"deleteForIssue": [Function],
"deleteForIssueComment": [Function],
"deleteForPullRequestComment": [Function],
"deleteForTeamDiscussion": [Function],
"deleteForTeamDiscussionComment": [Function],
"deleteLegacy": [Function],
"listForCommitComment": [Function],
"listForIssue": [Function],
"listForIssueComment": [Function],
"listForPullRequestReviewComment": [Function],
"listForTeamDiscussionCommentInOrg": [Function],
"listForTeamDiscussionInOrg": [Function],
},
"repos": Object {
"acceptInvitation": [Function],
"addAppAccessRestrictions": [Function],
"addCollaborator": [Function],
"addDeployKey": [Function],
"addProtectedBranchAdminEnforcement": [Function],
"addProtectedBranchAppRestrictions": [Function],
"addProtectedBranchRequiredSignatures": [Function],
"addProtectedBranchRequiredStatusChecksContexts": [Function],
"addProtectedBranchTeamRestrictions": [Function],
"addProtectedBranchUserRestrictions": [Function],
"addStatusCheckContexts": [Function],
"addTeamAccessRestrictions": [Function],
"addUserAccessRestrictions": [Function],
"checkCollaborator": [Function],
"checkVulnerabilityAlerts": [Function],
"compareCommits": [Function],
"createCommitComment": [Function],
"createCommitSignatureProtection": [Function],
"createCommitStatus": [Function],
"createDeployKey": [Function],
"createDeployment": [Function],
"createDeploymentStatus": [Function],
"createDispatchEvent": [Function],
"createForAuthenticatedUser": [Function],
"createFork": [Function],
"createHook": [Function],
"createInOrg": [Function],
"createOrUpdateFile": [Function],
"createOrUpdateFileContents": [Function],
"createPagesSite": [Function],
"createRelease": [Function],
"createStatus": [Function],
"createUsingTemplate": [Function],
"createWebhook": [Function],
"declineInvitation": [Function],
"delete": [Function],
"deleteAccessRestrictions": [Function],
"deleteAdminBranchProtection": [Function],
"deleteBranchProtection": [Function],
"deleteCommitComment": [Function],
"deleteCommitSignatureProtection": [Function],
"deleteDeployKey": [Function],
"deleteDeployment": [Function],
"deleteDownload": [Function],
"deleteFile": [Function],
"deleteHook": [Function],
"deleteInvitation": [Function],
"deletePagesSite": [Function],
"deletePullRequestReviewProtection": [Function],
"deleteRelease": [Function],
"deleteReleaseAsset": [Function],
"deleteWebhook": [Function],
"disableAutomatedSecurityFixes": [Function],
"disablePagesSite": [Function],
"disableVulnerabilityAlerts": [Function],
"downloadArchive": [Function],
"enableAutomatedSecurityFixes": [Function],
"enablePagesSite": [Function],
"enableVulnerabilityAlerts": [Function],
"get": [Function],
"getAccessRestrictions": [Function],
"getAdminBranchProtection": [Function],
"getAllStatusCheckContexts": [Function],
"getAllTopics": [Function],
"getAppsWithAccessToProtectedBranch": [Function],
"getArchiveLink": [Function],
"getBranch": [Function],
"getBranchProtection": [Function],
"getClones": [Function],
"getCodeFrequencyStats": [Function],
"getCollaboratorPermissionLevel": [Function],
"getCombinedStatusForRef": [Function],
"getCommit": [Function],
"getCommitActivityStats": [Function],
"getCommitComment": [Function],
"getCommitSignatureProtection": [Function],
"getCommunityProfileMetrics": [Function],
"getContent": [Function],
"getContents": [Function],
"getContributorsStats": [Function],
"getDeployKey": [Function],
"getDeployment": [Function],
"getDeploymentStatus": [Function],
"getDownload": [Function],
"getHook": [Function],
"getLatestPagesBuild": [Function],
"getLatestRelease": [Function],
"getPages": [Function],
"getPagesBuild": [Function],
"getParticipationStats": [Function],
"getProtectedBranchAdminEnforcement": [Function],
"getProtectedBranchPullRequestReviewEnforcement": [Function],
"getProtectedBranchRequiredSignatures": [Function],
"getProtectedBranchRequiredStatusChecks": [Function],
"getProtectedBranchRestrictions": [Function],
"getPullRequestReviewProtection": [Function],
"getPunchCardStats": [Function],
"getReadme": [Function],
"getRelease": [Function],
"getReleaseAsset": [Function],
"getReleaseByTag": [Function],
"getStatusChecksProtection": [Function],
"getTeamsWithAccessToProtectedBranch": [Function],
"getTopPaths": [Function],
"getTopReferrers": [Function],
"getUsersWithAccessToProtectedBranch": [Function],
"getViews": [Function],
"getWebhook": [Function],
"list": [Function],
"listAssetsForRelease": [Function],
"listBranches": [Function],
"listBranchesForHeadCommit": [Function],
"listCollaborators": [Function],
"listCommentsForCommit": [Function],
"listCommitComments": [Function],
"listCommitCommentsForRepo": [Function],
"listCommitStatusesForRef": [Function],
"listCommits": [Function],
"listContributors": [Function],
"listDeployKeys": [Function],
"listDeploymentStatuses": [Function],
"listDeployments": [Function],
"listDownloads": [Function],
"listForAuthenticatedUser": [Function],
"listForOrg": [Function],
"listForUser": [Function],
"listForks": [Function],
"listHooks": [Function],
"listInvitations": [Function],
"listInvitationsForAuthenticatedUser": [Function],
"listLanguages": [Function],
"listPagesBuilds": [Function],
"listProtectedBranchRequiredStatusChecksContexts": [Function],
"listPublic": [Function],
"listPullRequestsAssociatedWithCommit": [Function],
"listReleaseAssets": [Function],
"listReleases": [Function],
"listStatusesForRef": [Function],
"listTags": [Function],
"listTeams": [Function],
"listTopics": [Function],
"listWebhooks": [Function],
"merge": [Function],
"pingHook": [Function],
"pingWebhook": [Function],
"removeAppAccessRestrictions": [Function],
"removeBranchProtection": [Function],
"removeCollaborator": [Function],
"removeDeployKey": [Function],
"removeProtectedBranchAdminEnforcement": [Function],
"removeProtectedBranchAppRestrictions": [Function],
"removeProtectedBranchPullRequestReviewEnforcement": [Function],
"removeProtectedBranchRequiredSignatures": [Function],
"removeProtectedBranchRequiredStatusChecks": [Function],
"removeProtectedBranchRequiredStatusChecksContexts": [Function],
"removeProtectedBranchRestrictions": [Function],
"removeProtectedBranchTeamRestrictions": [Function],
"removeProtectedBranchUserRestrictions": [Function],
"removeStatusCheckContexts": [Function],
"removeStatusCheckProtection": [Function],
"removeTeamAccessRestrictions": [Function],
"removeUserAccessRestrictions": [Function],
"replaceAllTopics": [Function],
"replaceProtectedBranchAppRestrictions": [Function],
"replaceProtectedBranchRequiredStatusChecksContexts": [Function],
"replaceProtectedBranchTeamRestrictions": [Function],
"replaceProtectedBranchUserRestrictions": [Function],
"replaceTopics": [Function],
"requestPageBuild": [Function],
"requestPagesBuild": [Function],
"retrieveCommunityProfileMetrics": [Function],
"setAdminBranchProtection": [Function],
"setAppAccessRestrictions": [Function],
"setStatusCheckContexts": [Function],
"setTeamAccessRestrictions": [Function],
"setUserAccessRestrictions": [Function],
"testPushHook": [Function],
"testPushWebhook": [Function],
"transfer": [Function],
"update": [Function],
"updateBranchProtection": [Function],
"updateCommitComment": [Function],
"updateHook": [Function],
"updateInformationAboutPagesSite": [Function],
"updateInvitation": [Function],
"updateProtectedBranchPullRequestReviewEnforcement": [Function],
"updateProtectedBranchRequiredStatusChecks": [Function],
"updatePullRequestReviewProtection": [Function],
"updateRelease": [Function],
"updateReleaseAsset": [Function],
"updateStatusCheckPotection": [Function],
"updateWebhook": [Function],
"uploadReleaseAsset": [Function],
},
"request": [Function],
"search": Object {
"code": [Function],
"commits": [Function],
"issuesAndPullRequests": [Function],
"labels": [Function],
"repos": [Function],
"topics": [Function],
"users": [Function],
},
"teams": Object {
"addOrUpdateMembershipForUserInOrg": [Function],
"addOrUpdateMembershipInOrg": [Function],
"addOrUpdateProjectInOrg": [Function],
"addOrUpdateProjectPermissionsInOrg": [Function],
"addOrUpdateRepoInOrg": [Function],
"addOrUpdateRepoPermissionsInOrg": [Function],
"checkManagesRepoInOrg": [Function],
"checkPermissionsForProjectInOrg": [Function],
"checkPermissionsForRepoInOrg": [Function],
"create": [Function],
"createDiscussionCommentInOrg": [Function],
"createDiscussionInOrg": [Function],
"deleteDiscussionCommentInOrg": [Function],
"deleteDiscussionInOrg": [Function],
"deleteInOrg": [Function],
"getByName": [Function],
"getDiscussionCommentInOrg": [Function],
"getDiscussionInOrg": [Function],
"getMembershipForUserInOrg": [Function],
"getMembershipInOrg": [Function],
"list": [Function],
"listChildInOrg": [Function],
"listDiscussionCommentsInOrg": [Function],
"listDiscussionsInOrg": [Function],
"listForAuthenticatedUser": [Function],
"listMembersInOrg": [Function],
"listPendingInvitationsInOrg": [Function],
"listProjectsInOrg": [Function],
"listReposInOrg": [Function],
"removeMembershipForUserInOrg": [Function],
"removeMembershipInOrg": [Function],
"removeProjectInOrg": [Function],
"removeRepoInOrg": [Function],
"reviewProjectInOrg": [Function],
"updateDiscussionCommentInOrg": [Function],
"updateDiscussionInOrg": [Function],
"updateInOrg": [Function],
},
"users": Object {
"addEmailForAuthenticated": [Function],
"addEmails": [Function],
"block": [Function],
"checkBlocked": [Function],
"checkFollowing": [Function],
"checkFollowingForUser": [Function],
"checkPersonIsFollowedByAuthenticated": [Function],
"createGpgKey": [Function],
"createGpgKeyForAuthenticated": [Function],
"createPublicKey": [Function],
"createPublicSshKeyForAuthenticated": [Function],
"deleteEmailForAuthenticated": [Function],
"deleteEmails": [Function],
"deleteGpgKey": [Function],
"deleteGpgKeyForAuthenticated": [Function],
"deletePublicKey": [Function],
"deletePublicSshKeyForAuthenticated": [Function],
"follow": [Function],
"getAuthenticated": [Function],
"getByUsername": [Function],
"getContextForUser": [Function],
"getGpgKey": [Function],
"getGpgKeyForAuthenticated": [Function],
"getPublicKey": [Function],
"getPublicSshKeyForAuthenticated": [Function],
"list": [Function],
"listBlocked": [Function],
"listBlockedByAuthenticated": [Function],
"listEmails": [Function],
"listEmailsForAuthenticated": [Function],
"listFollowedByAuthenticated": [Function],
"listFollowersForAuthenticatedUser": [Function],
"listFollowersForUser": [Function],
"listFollowingForAuthenticatedUser": [Function],
"listFollowingForUser": [Function],
"listGpgKeys": [Function],
"listGpgKeysForAuthenticated": [Function],
"listGpgKeysForUser": [Function],
"listPublicEmails": [Function],
"listPublicEmailsForAuthenticated": [Function],
"listPublicKeys": [Function],
"listPublicKeysForUser": [Function],
"listPublicSshKeysForAuthenticated": [Function],
"setPrimaryEmailVisibilityForAuthenticated": [Function],
"togglePrimaryEmailVisibility": [Function],
"unblock": [Function],
"unfollow": [Function],
"updateAuthenticated": [Function],
},
},
},
"hasStorageAnalyticsAfecFeature": [Function],
"isAccountReady": [Function], "isAccountReady": [Function],
"isFixedCollectionWithSharedThroughputSupported": [Function], "isFixedCollectionWithSharedThroughputSupported": [Function],
"isHostedDataExplorerEnabled": [Function], "isHostedDataExplorerEnabled": [Function],
"isLastCollection": [Function], "isLastCollection": [Function],
"isLastNonEmptyDatabase": [Function], "isLastNonEmptyDatabase": [Function],
"isLeftPaneExpanded": [Function], "isLeftPaneExpanded": [Function],
"isMongoIndexingEnabled": [Function],
"isNotebookEnabled": [Function], "isNotebookEnabled": [Function],
"isNotebooksEnabledForAccount": [Function], "isNotebooksEnabledForAccount": [Function],
"isPublishNotebookPaneEnabled": [Function],
"isResourceTokenCollectionNodeSelected": [Function], "isResourceTokenCollectionNodeSelected": [Function],
"isSchemaEnabled": [Function], "isSchemaEnabled": [Function],
"isSelectedDatabaseShared": [Function], "isSelectedDatabaseShared": [Function],
"isServerlessEnabled": [Function], "isServerlessEnabled": [Function],
"isShellEnabled": [Function], "isShellEnabled": [Function],
"isSparkEnabled": [Function],
"isSparkEnabledForAccount": [Function],
"isSynapseLinkUpdating": [Function], "isSynapseLinkUpdating": [Function],
"isTabsContentExpanded": [Function], "isTabsContentExpanded": [Function],
"junoClient": JunoClient {
"cachedPinnedRepos": [Function],
},
"memoryUsageInfo": [Function], "memoryUsageInfo": [Function],
"notebookBasePath": [Function], "notebookBasePath": [Function],
"notebookServerInfo": [Function], "notebookServerInfo": [Function],
"onGitHubClientError": [Function],
"onRefreshDatabasesKeyPress": [Function], "onRefreshDatabasesKeyPress": [Function],
"onRefreshResourcesClick": [Function], "onRefreshResourcesClick": [Function],
"openSidePanel": undefined, "openSidePanel": undefined,

View File

@ -1,7 +1,6 @@
import { stringifyNotebook, toJS } from "@nteract/commutable"; import { stringifyNotebook, toJS } from "@nteract/commutable";
import * as ko from "knockout"; import * as ko from "knockout";
import * as Q from "q"; import * as Q from "q";
import * as _ from "underscore";
import ClearAllOutputsIcon from "../../../images/notebook/Notebook-clear-all-outputs.svg"; import ClearAllOutputsIcon from "../../../images/notebook/Notebook-clear-all-outputs.svg";
import CopyIcon from "../../../images/notebook/Notebook-copy.svg"; import CopyIcon from "../../../images/notebook/Notebook-copy.svg";
import CutIcon from "../../../images/notebook/Notebook-cut.svg"; import CutIcon from "../../../images/notebook/Notebook-cut.svg";
@ -12,14 +11,9 @@ import RunAllIcon from "../../../images/notebook/Notebook-run-all.svg";
import RunIcon from "../../../images/notebook/Notebook-run.svg"; import RunIcon from "../../../images/notebook/Notebook-run.svg";
import { default as InterruptKernelIcon, default as KillKernelIcon } from "../../../images/notebook/Notebook-stop.svg"; import { default as InterruptKernelIcon, default as KillKernelIcon } from "../../../images/notebook/Notebook-stop.svg";
import SaveIcon from "../../../images/save-cosmos.svg"; import SaveIcon from "../../../images/save-cosmos.svg";
import { ArmApiVersions } from "../../Common/Constants";
import { configContext } from "../../ConfigContext";
import * as DataModels from "../../Contracts/DataModels";
import { useNotebookSnapshotStore } from "../../hooks/useNotebookSnapshotStore"; import { useNotebookSnapshotStore } from "../../hooks/useNotebookSnapshotStore";
import { trackEvent } from "../../Shared/appInsights";
import { Action, ActionModifiers, Source } from "../../Shared/Telemetry/TelemetryConstants"; import { Action, ActionModifiers, Source } from "../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor";
import { userContext } from "../../UserContext";
import * as NotebookConfigurationUtils from "../../Utils/NotebookConfigurationUtils"; import * as NotebookConfigurationUtils from "../../Utils/NotebookConfigurationUtils";
import { logConsoleInfo } from "../../Utils/NotificationConsoleUtils"; import { logConsoleInfo } from "../../Utils/NotificationConsoleUtils";
import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent"; import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent";
@ -38,7 +32,6 @@ export interface NotebookTabOptions extends NotebookTabBaseOptions {
export default class NotebookTabV2 extends NotebookTabBase { export default class NotebookTabV2 extends NotebookTabBase {
public readonly html = '<div data-bind="react:notebookComponentAdapter" style="height: 100%"></div>'; public readonly html = '<div data-bind="react:notebookComponentAdapter" style="height: 100%"></div>';
public notebookPath: ko.Observable<string>; public notebookPath: ko.Observable<string>;
private selectedSparkPool: ko.Observable<string>;
private notebookComponentAdapter: NotebookComponentAdapter; private notebookComponentAdapter: NotebookComponentAdapter;
constructor(options: NotebookTabOptions) { constructor(options: NotebookTabOptions) {
@ -53,16 +46,6 @@ export default class NotebookTabV2 extends NotebookTabBase {
notebookClient: NotebookTabBase.clientManager, notebookClient: NotebookTabBase.clientManager,
onUpdateKernelInfo: this.onKernelUpdate, onUpdateKernelInfo: this.onKernelUpdate,
}); });
this.selectedSparkPool = ko.observable<string>(null);
this.container &&
this.container.arcadiaToken.subscribe(async () => {
const currentKernel = this.notebookComponentAdapter.getCurrentKernelName();
if (!currentKernel) {
return;
}
await this.configureServiceEndpoints(currentKernel);
});
} }
public onCloseTabButtonClick(): Q.Promise<any> { public onCloseTabButtonClick(): Q.Promise<any> {
@ -361,32 +344,6 @@ export default class NotebookTabV2 extends NotebookTabBase {
}, },
// TODO: Uncomment when undo/redo is reimplemented in nteract // TODO: Uncomment when undo/redo is reimplemented in nteract
]; ];
if (this.container.hasStorageAnalyticsAfecFeature()) {
const arcadiaWorkspaceDropdown: CommandButtonComponentProps = {
iconSrc: null,
iconAlt: workspaceLabel,
ariaLabel: workspaceLabel,
onCommandClick: () => {},
commandButtonLabel: null,
hasPopup: false,
disabled: this.container.arcadiaWorkspaces.length < 1,
isDropdown: false,
isArcadiaPicker: true,
arcadiaProps: {
selectedSparkPool: this.selectedSparkPool(),
workspaces: this.container.arcadiaWorkspaces(),
onSparkPoolSelect: this.onSparkPoolSelect,
onCreateNewWorkspaceClicked: () => {
this.container.createWorkspace();
},
onCreateNewSparkPoolClicked: (workspaceResourceId: string) => {
this.container.createSparkPool(workspaceResourceId);
},
},
};
buttons.splice(1, 0, arcadiaWorkspaceDropdown);
}
return buttons; return buttons;
} }
@ -394,50 +351,6 @@ export default class NotebookTabV2 extends NotebookTabBase {
this.updateNavbarWithTabsButtons(); this.updateNavbarWithTabsButtons();
} }
private onSparkPoolSelect = (evt: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>, item: any) => {
if (!item || !item.text) {
this.selectedSparkPool(null);
return;
}
trackEvent(
{ name: "SparkPoolSelected" },
{
subscriptionId: userContext.subscriptionId,
accountName: userContext.databaseAccount?.name,
accountId: userContext.databaseAccount?.id,
}
);
this.container &&
this.container.arcadiaWorkspaces &&
this.container.arcadiaWorkspaces() &&
this.container.arcadiaWorkspaces().forEach(async (workspace) => {
if (workspace && workspace.name && workspace.sparkPools) {
const selectedPoolIndex = _.findIndex(workspace.sparkPools, (pool) => pool && pool.name === item.text);
if (selectedPoolIndex >= 0) {
const selectedPool = workspace.sparkPools[selectedPoolIndex];
if (selectedPool && selectedPool.name) {
this.container.sparkClusterConnectionInfo({
userName: undefined,
password: undefined,
endpoints: [
{
endpoint: `https://${workspace.name}.${configContext.ARCADIA_LIVY_ENDPOINT_DNS_ZONE}/livyApi/versions/${ArmApiVersions.arcadiaLivy}/sparkPools/${selectedPool.name}/`,
kind: DataModels.SparkClusterEndpointKind.Livy,
},
],
});
this.selectedSparkPool(item.text);
await this.reconfigureServiceEndpoints();
this.container.sparkClusterConnectionInfo.valueHasMutated();
return;
}
}
}
});
};
private onKernelUpdate = async () => { private onKernelUpdate = async () => {
await this.configureServiceEndpoints(this.notebookComponentAdapter.getCurrentKernelName()).catch((reason) => { await this.configureServiceEndpoints(this.notebookComponentAdapter.getCurrentKernelName()).catch((reason) => {
/* Erroring is ok here */ /* Erroring is ok here */

View File

@ -1,50 +0,0 @@
import { IResourceProviderClient } from "../ResourceProvider/IResourceProviderClient";
import { NotebookWorkspace } from "../Contracts/DataModels";
export class NotebookWorkspaceSettingsProviderClient implements IResourceProviderClient<string> {
public async deleteAsync(_url: string, _apiVersion: string): Promise<void> {
throw new Error("Not yet implemented");
}
public async postAsync(_url: string, _body: any, _apiVersion: string): Promise<any> {
return Promise.resolve({
notebookServerEndpoint: "http://localhost:8888",
username: "",
password: "",
});
}
public async getAsync(): Promise<string> {
throw new Error("Not yet implemented");
}
public async putAsync(): Promise<string> {
throw new Error("Not yet implemented");
}
public async patchAsync(): Promise<string> {
throw new Error("Not yet implemented");
}
}
export class NotebookWorkspaceResourceProviderClient implements IResourceProviderClient<NotebookWorkspace> {
public async deleteAsync(): Promise<void> {
throw new Error("Not yet implemented");
}
public async postAsync(): Promise<NotebookWorkspace> {
throw new Error("Not yet implemented");
}
public async getAsync(): Promise<NotebookWorkspace | NotebookWorkspace[]> {
throw new Error("Not yet implemented");
}
public async putAsync(): Promise<NotebookWorkspace> {
throw new Error("Not yet implemented");
}
public async patchAsync(): Promise<NotebookWorkspace> {
throw new Error("Not yet implemented");
}
}

View File

@ -1,78 +0,0 @@
import {
ArcadiaWorkspace,
ArcadiaWorkspaceFeedResponse,
SparkPool,
SparkPoolFeedResponse,
} from "../Contracts/DataModels";
import { ArmApiVersions, ArmResourceTypes } from "../Common/Constants";
import { IResourceProviderClient, IResourceProviderClientFactory } from "../ResourceProvider/IResourceProviderClient";
import * as Logger from "../Common/Logger";
import { ResourceProviderClientFactory } from "../ResourceProvider/ResourceProviderClientFactory";
import { getErrorMessage } from "../Common/ErrorHandlingUtils";
export class ArcadiaResourceManager {
private resourceProviderClientFactory: IResourceProviderClientFactory<any>;
constructor() {
this.resourceProviderClientFactory = new ResourceProviderClientFactory();
}
public async getWorkspacesAsync(arcadiaResourceId: string): Promise<ArcadiaWorkspace[]> {
const uri = `${arcadiaResourceId}/workspaces`;
try {
const response = (await this._rpClient(uri).getAsync(
uri,
ArmApiVersions.arcadia
)) as ArcadiaWorkspaceFeedResponse;
return response && response.value;
} catch (error) {
Logger.logError(getErrorMessage(error), "ArcadiaResourceManager/getWorkspaceAsync");
throw error;
}
}
public async getWorkspaceAsync(arcadiaResourceId: string, workspaceId: string): Promise<ArcadiaWorkspace> {
const uri = `${arcadiaResourceId}/workspaces/${workspaceId}`;
try {
return (await this._rpClient(uri).getAsync(uri, ArmApiVersions.arcadia)) as ArcadiaWorkspace;
} catch (error) {
Logger.logError(getErrorMessage(error), "ArcadiaResourceManager/getWorkspaceAsync");
throw error;
}
}
public async listWorkspacesAsync(subscriptionIds: string[]): Promise<ArcadiaWorkspace[]> {
let uriFilter = `$filter=(resourceType eq '${ArmResourceTypes.synapseWorkspaces.toLowerCase()}')`;
if (subscriptionIds && subscriptionIds.length) {
uriFilter += ` and (${"subscriptionId eq '" + subscriptionIds.join("' or subscriptionId eq '") + "'"})`;
}
const uri = "/resources";
try {
const response = (await this._rpClient(uri + uriFilter).getAsync(
uri,
ArmApiVersions.arm,
uriFilter
)) as ArcadiaWorkspaceFeedResponse;
return response && response.value;
} catch (error) {
Logger.logError(getErrorMessage(error), "ArcadiaManager/listWorkspacesAsync");
throw error;
}
}
public async listSparkPoolsAsync(resourceId: string): Promise<SparkPool[]> {
let uri = `${resourceId}/bigDataPools`;
try {
const response = (await this._rpClient(uri).getAsync(uri, ArmApiVersions.arcadia)) as SparkPoolFeedResponse;
return response && response.value;
} catch (error) {
Logger.logError(getErrorMessage(error), "ArcadiaManager/listSparkPoolsAsync");
throw error;
}
}
private _rpClient<TResource>(uri: string): IResourceProviderClient<TResource> {
return this.resourceProviderClientFactory.getOrCreate(uri);
}
}

View File

@ -1,6 +1,6 @@
import * as DataModels from "../Contracts/DataModels";
import * as Logger from "../Common/Logger";
import { getErrorMessage } from "../Common/ErrorHandlingUtils"; import { getErrorMessage } from "../Common/ErrorHandlingUtils";
import * as Logger from "../Common/Logger";
import * as DataModels from "../Contracts/DataModels";
interface KernelConnectionMetadata { interface KernelConnectionMetadata {
name: string; name: string;
@ -64,14 +64,13 @@ export const configureServiceEndpoints = async (
return Promise.reject("Invalid or missing cluster connection info"); return Promise.reject("Invalid or missing cluster connection info");
} }
const dataExplorer = window.dataExplorer;
const notebookEndpointInfo: DataModels.NotebookConfigurationEndpointInfo[] = clusterConnectionInfo.endpoints.map( const notebookEndpointInfo: DataModels.NotebookConfigurationEndpointInfo[] = clusterConnectionInfo.endpoints.map(
(clusterEndpoint) => ({ (clusterEndpoint) => ({
type: clusterEndpoint.kind.toLowerCase(), type: clusterEndpoint.kind.toLowerCase(),
endpoint: clusterEndpoint && clusterEndpoint.endpoint, endpoint: clusterEndpoint && clusterEndpoint.endpoint,
username: clusterConnectionInfo.userName, username: clusterConnectionInfo.userName,
password: clusterConnectionInfo.password, password: clusterConnectionInfo.password,
token: dataExplorer && dataExplorer.arcadiaToken(), token: "", // TODO. This was arcadiaToken() when our synapse/spark integration comes back
}) })
); );
const configurationEndpoints: DataModels.NotebookConfigurationEndpoints = { const configurationEndpoints: DataModels.NotebookConfigurationEndpoints = {

View File

@ -6,6 +6,8 @@
Generated from: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/workspace.json Generated from: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/workspace.json
*/ */
import { ARMResourceProperties } from "../cosmos/types";
/* Workspace active directory administrator properties */ /* Workspace active directory administrator properties */
export interface AadAdminProperties { export interface AadAdminProperties {
/* Tenant ID of the workspace active directory administrator */ /* Tenant ID of the workspace active directory administrator */
@ -113,13 +115,13 @@ export interface PurviewConfiguration {
} }
/* Workspace active directory administrator */ /* Workspace active directory administrator */
export type WorkspaceAadAdminInfo = unknown & { export type WorkspaceAadAdminInfo = ARMResourceProperties & {
/* Workspace active directory administrator properties */ /* Workspace active directory administrator properties */
properties?: AadAdminProperties; properties?: AadAdminProperties;
}; };
/* A workspace */ /* A workspace */
export type Workspace = unknown & { export type Workspace = ARMResourceProperties & {
/* Workspace resource properties */ /* Workspace resource properties */
properties?: WorkspaceProperties; properties?: WorkspaceProperties;
@ -209,7 +211,7 @@ export interface WorkspacePatchProperties {
} }
/* Sql Control Settings for workspace managed identity */ /* Sql Control Settings for workspace managed identity */
export type ManagedIdentitySqlControlSettingsModel = unknown & { export type ManagedIdentitySqlControlSettingsModel = ARMResourceProperties & {
/* Sql Control Settings for workspace managed identity */ /* Sql Control Settings for workspace managed identity */
properties?: unknown; properties?: unknown;
}; };
@ -235,7 +237,7 @@ export interface RestorableDroppedSqlPoolProperties {
} }
/* A restorable dropped Sql pool */ /* A restorable dropped Sql pool */
export type RestorableDroppedSqlPool = unknown & { export type RestorableDroppedSqlPool = ARMResourceProperties & {
/* The geo-location where the resource lives */ /* The geo-location where the resource lives */
readonly location?: string; readonly location?: string;
/* The properties of a restorable dropped Sql pool */ /* The properties of a restorable dropped Sql pool */

View File

@ -78,7 +78,6 @@
"./src/GitHub/GitHubConnector.ts", "./src/GitHub/GitHubConnector.ts",
"./src/HostedExplorerChildFrame.ts", "./src/HostedExplorerChildFrame.ts",
"./src/Index.ts", "./src/Index.ts",
"./src/NotebookWorkspaceManager/NotebookWorkspaceResourceProviderMockClients.ts",
"./src/Platform/Hosted/Authorization.ts", "./src/Platform/Hosted/Authorization.ts",
"./src/Platform/Hosted/Components/MeControl.test.tsx", "./src/Platform/Hosted/Components/MeControl.test.tsx",
"./src/Platform/Hosted/Components/MeControl.tsx", "./src/Platform/Hosted/Components/MeControl.tsx",