Skip to content

Commit 4c0ee6a

Browse files
authored
Update telemetry readme, and do not fetch private schemas if there is… (#201)
1 parent 87a2b0f commit 4c0ee6a

File tree

6 files changed

+22
-7
lines changed

6 files changed

+22
-7
lines changed

src/auth/AwsCredentials.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ export class AwsCredentials {
3434
this.logger.info(`AWS credentials ${encryptionKey ? 'encrypted' : 'unencrypted'}`);
3535
}
3636

37+
credentialsAvailable() {
38+
return this.iamCredentials !== undefined;
39+
}
40+
3741
getIAM(): DeepReadonly<IamCredentials> {
3842
if (!this.iamCredentials) {
3943
throw new Error('IAM credentials not configured');

src/schema/GetSchemaTask.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DescribeTypeOutput } from '@aws-sdk/client-cloudformation';
22
import { Logger } from 'pino';
3+
import { AwsCredentials } from '../auth/AwsCredentials';
34
import { DataStore } from '../datastore/DataStore';
45
import { CfnService } from '../services/CfnService';
56
import { Measure } from '../telemetry/TelemetryDecorator';
@@ -98,6 +99,10 @@ export function getRemotePublicSchemas(region: AwsRegion) {
9899
return unZipFile(downloadFile(cfnResourceSchemaLink(region)));
99100
}
100101

101-
export function getRemotePrivateSchemas(cfnService: CfnService) {
102-
return cfnService.getAllPrivateResourceSchemas();
102+
export function getRemotePrivateSchemas(awsCredentials: AwsCredentials, cfnService: CfnService) {
103+
if (awsCredentials.credentialsAvailable()) {
104+
return cfnService.getAllPrivateResourceSchemas();
105+
}
106+
107+
return Promise.resolve([]);
103108
}

src/server/CfnExternal.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export class CfnExternal implements Configurables, Closeable {
4646
this.schemaTaskManager =
4747
overrides.schemaTaskManager ??
4848
new GetSchemaTaskManager(this.schemaStore, getRemotePublicSchemas, () => {
49-
return getRemotePrivateSchemas(this.cfnService);
49+
return getRemotePrivateSchemas(core.awsCredentials, this.cfnService);
5050
});
5151
this.schemaRetriever =
5252
overrides.schemaRetriever ?? new SchemaRetriever(this.schemaTaskManager, this.schemaStore);

src/telemetry/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ initializationOptions: {
5858
}
5959
...
6060
```
61+
62+
Your LSP client controls telemetry settings. Consult your LSP client's documentation for configuration options. Changes require restarting the language server to take effect.
63+
6164
* **Alpha environment**: Telemetry is enabled by default if no initialization parameter is provided
6265
* **Beta and Production environments**: Telemetry is disabled by default if no initialization parameter is provided
63-
64-
Your LSP client application controls telemetry settings. Consult your LSP client's documentation for configuration options. Changes require restarting the language server to take effect.

src/utils/String.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ export function isStringABoolean(value: string): boolean {
3737
export function stringToBoolean(value: string): boolean {
3838
return value.trim().toLowerCase() === 'true';
3939
}
40+
41+
export function byteSize(str: string) {
42+
const bytes: Uint8Array = new TextEncoder().encode(str);
43+
return bytes.length;
44+
}

tst/utils/TestExtension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import {
4747
import { createConnection } from 'vscode-languageserver/node';
4848
import { IamCredentialsUpdateRequest, IamCredentialsDeleteNotification } from '../../src/auth/AuthProtocol';
4949
import { UpdateCredentialsParams } from '../../src/auth/AwsLspAuthTypes';
50-
import { MultiDataStoreFactoryProvider } from '../../src/datastore/DataStore';
50+
import { MemoryDataStoreFactoryProvider } from '../../src/datastore/DataStore';
5151
import { FeatureFlagProvider } from '../../src/featureFlag/FeatureFlagProvider';
5252
import { LspCapabilities } from '../../src/protocol/LspCapabilities';
5353
import { LspConnection } from '../../src/protocol/LspConnection';
@@ -116,7 +116,7 @@ export class TestExtension implements Closeable {
116116
const lsp = this.serverConnection.components;
117117
LoggerFactory.initialize(awsMetadata);
118118

119-
const dataStoreFactory = new MultiDataStoreFactoryProvider();
119+
const dataStoreFactory = new MemoryDataStoreFactoryProvider();
120120
this.core = new CfnInfraCore(lsp, params, {
121121
dataStoreFactory,
122122
});

0 commit comments

Comments
 (0)