@ts-cloud/core 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-features.test.d.ts +1 -0
- package/dist/aws/cloudformation.d.ts +136 -0
- package/dist/aws/cloudfront.d.ts +45 -0
- package/dist/aws/credentials.d.ts +77 -0
- package/dist/aws/credentials.test.d.ts +4 -0
- package/dist/aws/index.d.ts +10 -0
- package/dist/aws/s3.d.ts +256 -0
- package/dist/aws/s3.test.d.ts +4 -0
- package/dist/aws/signature.d.ts +142 -0
- package/dist/aws/signature.test.d.ts +4 -0
- package/dist/backup/disaster-recovery.d.ts +140 -0
- package/dist/backup/disaster-recovery.test.d.ts +1 -0
- package/dist/backup/index.d.ts +8 -0
- package/dist/backup/manager.d.ts +172 -0
- package/dist/backup/manager.test.d.ts +1 -0
- package/dist/cicd/circleci.d.ts +50 -0
- package/dist/cicd/github-actions.d.ts +62 -0
- package/dist/cicd/gitlab-ci.d.ts +50 -0
- package/dist/cicd/index.d.ts +7 -0
- package/dist/cli/history.d.ts +137 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/progress.d.ts +193 -0
- package/dist/cli/repl.d.ts +148 -0
- package/dist/cli/suggestions.d.ts +74 -0
- package/dist/cli/table.d.ts +73 -0
- package/dist/cli/table.test.d.ts +1 -0
- package/dist/cloudformation/builder.d.ts +93 -0
- package/dist/cloudformation/builder.test.d.ts +4 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +68 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +39 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +16 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +36 -0
- package/dist/cloudformation/index.d.ts +10 -0
- package/dist/cloudformation/types.d.ts +200 -0
- package/dist/compliance/aws-config.d.ts +175 -0
- package/dist/compliance/cloudtrail.d.ts +132 -0
- package/dist/compliance/compliance.test.d.ts +1 -0
- package/dist/compliance/guardduty.d.ts +176 -0
- package/dist/compliance/index.d.ts +12 -0
- package/dist/compliance/security-hub.d.ts +178 -0
- package/dist/containers/build-optimization.d.ts +155 -0
- package/dist/containers/containers.test.d.ts +1 -0
- package/dist/containers/image-scanning.d.ts +144 -0
- package/dist/containers/index.d.ts +8 -0
- package/dist/containers/registry.d.ts +129 -0
- package/dist/containers/service-mesh.d.ts +254 -0
- package/dist/database/database.test.d.ts +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/migrations.d.ts +153 -0
- package/dist/database/performance.d.ts +219 -0
- package/dist/database/replicas.d.ts +218 -0
- package/dist/database/users.d.ts +165 -0
- package/dist/dependency-graph.d.ts +37 -0
- package/dist/deployment/ab-testing.d.ts +165 -0
- package/dist/deployment/blue-green.d.ts +140 -0
- package/dist/deployment/canary.d.ts +165 -0
- package/dist/deployment/deployment.test.d.ts +1 -0
- package/dist/deployment/index.d.ts +12 -0
- package/dist/deployment/progressive.d.ts +50 -0
- package/dist/dns/dns.test.d.ts +1 -0
- package/dist/dns/dnssec.d.ts +120 -0
- package/dist/dns/index.d.ts +7 -0
- package/dist/dns/resolver.d.ts +216 -0
- package/dist/dns/routing.d.ts +277 -0
- package/dist/email/advanced/analytics.d.ts +107 -0
- package/dist/email/advanced/index.d.ts +10 -0
- package/dist/email/advanced/rules.d.ts +131 -0
- package/dist/email/advanced/scheduling.d.ts +81 -0
- package/dist/email/advanced/search.d.ts +91 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
- package/dist/email/advanced/templates.d.ts +95 -0
- package/dist/email/advanced/threading.d.ts +65 -0
- package/dist/email/analytics.d.ts +189 -0
- package/dist/email/bounce-handling.d.ts +171 -0
- package/dist/email/email.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
- package/dist/email/handlers/converter.d.ts +11 -0
- package/dist/email/handlers/feedback.d.ts +11 -0
- package/dist/email/handlers/inbound.d.ts +13 -0
- package/dist/email/handlers/outbound.d.ts +13 -0
- package/dist/email/index.d.ts +10 -0
- package/dist/email/reputation.d.ts +133 -0
- package/dist/email/templates.d.ts +124 -0
- package/dist/errors/index.d.ts +177 -0
- package/dist/errors/index.test.d.ts +4 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +15 -256
- package/dist/index.js +228 -80
- package/dist/intrinsic-functions.d.ts +77 -0
- package/dist/lambda/concurrency.d.ts +146 -0
- package/dist/lambda/destinations.d.ts +141 -0
- package/dist/lambda/dlq.d.ts +160 -0
- package/dist/lambda/index.d.ts +10 -0
- package/dist/lambda/lambda.test.d.ts +1 -0
- package/dist/lambda/layers.d.ts +117 -0
- package/dist/lambda/versions.d.ts +145 -0
- package/dist/lambda/vpc.d.ts +164 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +5 -0
- package/dist/local/mock-aws.d.ts +69 -0
- package/dist/modules/ai.d.ts +108 -0
- package/dist/modules/api.d.ts +157 -0
- package/dist/modules/auth.d.ts +262 -0
- package/dist/modules/cache.d.ts +108 -0
- package/dist/modules/cdn.d.ts +305 -0
- package/dist/modules/communication.d.ts +117 -0
- package/dist/modules/compute.d.ts +1376 -0
- package/dist/modules/database.d.ts +144 -0
- package/dist/modules/deployment.d.ts +372 -0
- package/dist/modules/dns.d.ts +143 -0
- package/dist/modules/email.d.ts +314 -0
- package/dist/modules/filesystem.d.ts +132 -0
- package/dist/modules/index.d.ts +31 -0
- package/dist/modules/messaging.d.ts +210 -0
- package/dist/modules/monitoring.d.ts +574 -0
- package/dist/modules/network.d.ts +148 -0
- package/dist/modules/parameter-store.d.ts +143 -0
- package/dist/modules/permissions.d.ts +245 -0
- package/dist/modules/phone.d.ts +125 -0
- package/dist/modules/queue.d.ts +411 -0
- package/dist/modules/redirects.d.ts +140 -0
- package/dist/modules/registry.d.ts +189 -0
- package/dist/modules/search.d.ts +135 -0
- package/dist/modules/secrets.d.ts +149 -0
- package/dist/modules/security.d.ts +219 -0
- package/dist/modules/sms.d.ts +130 -0
- package/dist/modules/storage.d.ts +344 -0
- package/dist/modules/workflow.d.ts +288 -0
- package/dist/multi-account/config.d.ts +166 -0
- package/dist/multi-account/index.d.ts +6 -0
- package/dist/multi-account/manager.d.ts +181 -0
- package/dist/multi-region/cross-region.d.ts +204 -0
- package/dist/multi-region/index.d.ts +7 -0
- package/dist/multi-region/manager.d.ts +136 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +55 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/logs.d.ts +213 -0
- package/dist/observability/metrics.d.ts +187 -0
- package/dist/observability/observability.test.d.ts +1 -0
- package/dist/observability/synthetics.d.ts +189 -0
- package/dist/observability/xray.d.ts +193 -0
- package/dist/phone/advanced/analytics.d.ts +83 -0
- package/dist/phone/advanced/callbacks.d.ts +67 -0
- package/dist/phone/advanced/index.d.ts +7 -0
- package/dist/phone/advanced/ivr-builder.d.ts +130 -0
- package/dist/phone/advanced/recording.d.ts +62 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
- package/dist/phone/handlers/incoming-call.d.ts +10 -0
- package/dist/phone/handlers/missed-call.d.ts +9 -0
- package/dist/phone/handlers/voicemail.d.ts +10 -0
- package/dist/phone/index.d.ts +5 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/dist/presets/extend.d.ts +194 -0
- package/dist/presets/extend.test.d.ts +4 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +13 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +1 -0
- package/dist/preview/index.d.ts +10 -0
- package/dist/preview/manager.d.ts +101 -0
- package/dist/preview/manager.test.d.ts +1 -0
- package/dist/preview/notifications.d.ts +89 -0
- package/dist/preview/notifications.test.d.ts +1 -0
- package/dist/queue/batch-processing.d.ts +138 -0
- package/dist/queue/dlq-monitoring.d.ts +143 -0
- package/dist/queue/fifo.d.ts +131 -0
- package/dist/queue/index.d.ts +8 -0
- package/dist/queue/management.d.ts +162 -0
- package/dist/queue/queue.test.d.ts +1 -0
- package/dist/resource-mgmt/index.d.ts +44 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +227 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/security/certificate-manager.d.ts +184 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/scanning.d.ts +196 -0
- package/dist/security/secrets-manager.d.ts +204 -0
- package/dist/security/secrets-rotation.d.ts +167 -0
- package/dist/security/security.test.d.ts +1 -0
- package/dist/sms/advanced/ab-testing.d.ts +74 -0
- package/dist/sms/advanced/analytics.d.ts +75 -0
- package/dist/sms/advanced/campaigns.d.ts +96 -0
- package/dist/sms/advanced/chatbot.d.ts +67 -0
- package/dist/sms/advanced/index.d.ts +9 -0
- package/dist/sms/advanced/link-tracking.d.ts +60 -0
- package/dist/sms/advanced/mms.d.ts +60 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
- package/dist/sms/handlers/delivery-status.d.ts +10 -0
- package/dist/sms/handlers/receive.d.ts +10 -0
- package/dist/sms/handlers/send.d.ts +10 -0
- package/dist/sms/index.d.ts +5 -0
- package/dist/stack-diff.d.ts +38 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +42 -0
- package/dist/template-validator.d.ts +28 -0
- package/dist/types.d.ts +2514 -0
- package/dist/utils/cache.d.ts +117 -0
- package/dist/utils/diff.d.ts +52 -0
- package/dist/utils/hash.d.ts +73 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/parallel.d.ts +78 -0
- package/dist/validators/credentials.d.ts +30 -0
- package/dist/validators/credentials.test.d.ts +4 -0
- package/dist/validators/quotas.d.ts +64 -0
- package/dist/validators/quotas.test.d.ts +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container Build Optimization
|
|
3
|
+
* Multi-stage builds, layer caching, and build performance
|
|
4
|
+
*/
|
|
5
|
+
export interface BuildConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
dockerfile: string;
|
|
9
|
+
context: string;
|
|
10
|
+
target?: string;
|
|
11
|
+
buildArgs?: Record<string, string>;
|
|
12
|
+
labels?: Record<string, string>;
|
|
13
|
+
cacheStrategy: CacheStrategy;
|
|
14
|
+
platform?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface CacheStrategy {
|
|
17
|
+
type: 'inline' | 'registry' | 'local' | 's3';
|
|
18
|
+
cacheFrom?: string[];
|
|
19
|
+
cacheTo?: string;
|
|
20
|
+
maxCacheAge?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MultiStageConfig {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
stages: BuildStage[];
|
|
26
|
+
targetStage?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface BuildStage {
|
|
29
|
+
name: string;
|
|
30
|
+
baseImage: string;
|
|
31
|
+
commands: string[];
|
|
32
|
+
copyFrom?: string[];
|
|
33
|
+
workdir?: string;
|
|
34
|
+
env?: Record<string, string>;
|
|
35
|
+
}
|
|
36
|
+
export interface BuildOptimization {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
recommendations: OptimizationRecommendation[];
|
|
40
|
+
estimatedSavings: BuildSavings;
|
|
41
|
+
}
|
|
42
|
+
export interface OptimizationRecommendation {
|
|
43
|
+
type: 'layer_reduction' | 'cache_optimization' | 'base_image' | 'dependencies';
|
|
44
|
+
priority: 'high' | 'medium' | 'low';
|
|
45
|
+
title: string;
|
|
46
|
+
description: string;
|
|
47
|
+
example?: string;
|
|
48
|
+
impact: string;
|
|
49
|
+
}
|
|
50
|
+
export interface BuildSavings {
|
|
51
|
+
sizeBefore: number;
|
|
52
|
+
sizeAfter: number;
|
|
53
|
+
timeBefore: number;
|
|
54
|
+
timeAfter: number;
|
|
55
|
+
}
|
|
56
|
+
export interface LayerAnalysis {
|
|
57
|
+
id: string;
|
|
58
|
+
imageId: string;
|
|
59
|
+
layers: ImageLayer[];
|
|
60
|
+
totalSize: number;
|
|
61
|
+
unnecessaryLayers: number;
|
|
62
|
+
}
|
|
63
|
+
export interface ImageLayer {
|
|
64
|
+
index: number;
|
|
65
|
+
command: string;
|
|
66
|
+
size: number;
|
|
67
|
+
created: Date;
|
|
68
|
+
cacheable: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build optimization manager
|
|
72
|
+
*/
|
|
73
|
+
export declare class BuildOptimizationManager {
|
|
74
|
+
private configs;
|
|
75
|
+
private multiStageConfigs;
|
|
76
|
+
private optimizations;
|
|
77
|
+
private analyses;
|
|
78
|
+
private configCounter;
|
|
79
|
+
private multiStageCounter;
|
|
80
|
+
private optimizationCounter;
|
|
81
|
+
private analysisCounter;
|
|
82
|
+
/**
|
|
83
|
+
* Create build config
|
|
84
|
+
*/
|
|
85
|
+
createBuildConfig(config: Omit<BuildConfig, 'id'>): BuildConfig;
|
|
86
|
+
/**
|
|
87
|
+
* Create optimized build config
|
|
88
|
+
*/
|
|
89
|
+
createOptimizedBuildConfig(options: {
|
|
90
|
+
name: string;
|
|
91
|
+
dockerfile: string;
|
|
92
|
+
enableCache?: boolean;
|
|
93
|
+
registry?: string;
|
|
94
|
+
}): BuildConfig;
|
|
95
|
+
/**
|
|
96
|
+
* Create multi-stage config
|
|
97
|
+
*/
|
|
98
|
+
createMultiStageConfig(config: Omit<MultiStageConfig, 'id'>): MultiStageConfig;
|
|
99
|
+
/**
|
|
100
|
+
* Create Node.js multi-stage build
|
|
101
|
+
*/
|
|
102
|
+
createNodeMultiStageBuild(options: {
|
|
103
|
+
name: string;
|
|
104
|
+
nodeVersion?: string;
|
|
105
|
+
targetStage?: 'production' | 'development';
|
|
106
|
+
}): MultiStageConfig;
|
|
107
|
+
/**
|
|
108
|
+
* Generate Dockerfile from multi-stage config
|
|
109
|
+
*/
|
|
110
|
+
generateDockerfile(configId: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Analyze image layers
|
|
113
|
+
*/
|
|
114
|
+
analyzeImage(imageId: string, layers: Omit<ImageLayer, 'cacheable'>[]): LayerAnalysis;
|
|
115
|
+
/**
|
|
116
|
+
* Check if layer is cacheable
|
|
117
|
+
*/
|
|
118
|
+
private isLayerCacheable;
|
|
119
|
+
/**
|
|
120
|
+
* Generate optimization recommendations
|
|
121
|
+
*/
|
|
122
|
+
generateOptimizations(analysisId: string): BuildOptimization;
|
|
123
|
+
/**
|
|
124
|
+
* Get build config
|
|
125
|
+
*/
|
|
126
|
+
getBuildConfig(id: string): BuildConfig | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* List build configs
|
|
129
|
+
*/
|
|
130
|
+
listBuildConfigs(): BuildConfig[];
|
|
131
|
+
/**
|
|
132
|
+
* Get multi-stage config
|
|
133
|
+
*/
|
|
134
|
+
getMultiStageConfig(id: string): MultiStageConfig | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* List multi-stage configs
|
|
137
|
+
*/
|
|
138
|
+
listMultiStageConfigs(): MultiStageConfig[];
|
|
139
|
+
/**
|
|
140
|
+
* Get optimization
|
|
141
|
+
*/
|
|
142
|
+
getOptimization(id: string): BuildOptimization | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* List optimizations
|
|
145
|
+
*/
|
|
146
|
+
listOptimizations(): BuildOptimization[];
|
|
147
|
+
/**
|
|
148
|
+
* Clear all data
|
|
149
|
+
*/
|
|
150
|
+
clear(): void;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Global build optimization manager instance
|
|
154
|
+
*/
|
|
155
|
+
export declare const buildOptimizationManager: BuildOptimizationManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container Image Scanning
|
|
3
|
+
* Vulnerability scanning with Trivy, Snyk, and other tools
|
|
4
|
+
*/
|
|
5
|
+
export interface ImageScanConfig {
|
|
6
|
+
id: string;
|
|
7
|
+
repository: string;
|
|
8
|
+
imageTag: string;
|
|
9
|
+
scanner: ScannerType;
|
|
10
|
+
scanOnPush: boolean;
|
|
11
|
+
scanSchedule?: string;
|
|
12
|
+
failOnSeverity?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
|
|
13
|
+
ignoreUnfixed?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type ScannerType = 'trivy' | 'snyk' | 'clair' | 'anchore' | 'ecr';
|
|
16
|
+
export interface ImageScanResult {
|
|
17
|
+
id: string;
|
|
18
|
+
imageUri: string;
|
|
19
|
+
scannerType: ScannerType;
|
|
20
|
+
scanDate: Date;
|
|
21
|
+
vulnerabilities: ImageVulnerability[];
|
|
22
|
+
summary: VulnerabilitySummary;
|
|
23
|
+
passed: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ImageVulnerability {
|
|
26
|
+
id: string;
|
|
27
|
+
cve: string;
|
|
28
|
+
severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'UNKNOWN';
|
|
29
|
+
packageName: string;
|
|
30
|
+
installedVersion: string;
|
|
31
|
+
fixedVersion?: string;
|
|
32
|
+
title: string;
|
|
33
|
+
description: string;
|
|
34
|
+
references: string[];
|
|
35
|
+
cvss?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface VulnerabilitySummary {
|
|
38
|
+
total: number;
|
|
39
|
+
critical: number;
|
|
40
|
+
high: number;
|
|
41
|
+
medium: number;
|
|
42
|
+
low: number;
|
|
43
|
+
unknown: number;
|
|
44
|
+
}
|
|
45
|
+
export interface ScanPolicy {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
allowedSeverities: string[];
|
|
49
|
+
maxCritical: number;
|
|
50
|
+
maxHigh: number;
|
|
51
|
+
blockOnFailure: boolean;
|
|
52
|
+
exemptions: string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Image scanning manager
|
|
56
|
+
*/
|
|
57
|
+
export declare class ImageScanningManager {
|
|
58
|
+
private configs;
|
|
59
|
+
private results;
|
|
60
|
+
private policies;
|
|
61
|
+
private configCounter;
|
|
62
|
+
private resultCounter;
|
|
63
|
+
private policyCounter;
|
|
64
|
+
/**
|
|
65
|
+
* Configure image scanning
|
|
66
|
+
*/
|
|
67
|
+
configureScan(config: Omit<ImageScanConfig, 'id'>): ImageScanConfig;
|
|
68
|
+
/**
|
|
69
|
+
* Configure Trivy scanning
|
|
70
|
+
*/
|
|
71
|
+
configureTrivyScan(options: {
|
|
72
|
+
repository: string;
|
|
73
|
+
imageTag: string;
|
|
74
|
+
scanOnPush?: boolean;
|
|
75
|
+
ignoreUnfixed?: boolean;
|
|
76
|
+
}): ImageScanConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Configure Snyk scanning
|
|
79
|
+
*/
|
|
80
|
+
configureSnykScan(options: {
|
|
81
|
+
repository: string;
|
|
82
|
+
imageTag: string;
|
|
83
|
+
scanOnPush?: boolean;
|
|
84
|
+
}): ImageScanConfig;
|
|
85
|
+
/**
|
|
86
|
+
* Configure ECR scanning
|
|
87
|
+
*/
|
|
88
|
+
configureECRScan(options: {
|
|
89
|
+
repository: string;
|
|
90
|
+
scanOnPush?: boolean;
|
|
91
|
+
}): ImageScanConfig;
|
|
92
|
+
/**
|
|
93
|
+
* Scan image
|
|
94
|
+
*/
|
|
95
|
+
scanImage(configId: string): Promise<ImageScanResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Simulate vulnerabilities (in production, call actual scanner)
|
|
98
|
+
*/
|
|
99
|
+
private simulateVulnerabilities;
|
|
100
|
+
/**
|
|
101
|
+
* Evaluate scan result
|
|
102
|
+
*/
|
|
103
|
+
private evaluateScanResult;
|
|
104
|
+
/**
|
|
105
|
+
* Create scan policy
|
|
106
|
+
*/
|
|
107
|
+
createPolicy(policy: Omit<ScanPolicy, 'id'>): ScanPolicy;
|
|
108
|
+
/**
|
|
109
|
+
* Create strict policy
|
|
110
|
+
*/
|
|
111
|
+
createStrictPolicy(name: string): ScanPolicy;
|
|
112
|
+
/**
|
|
113
|
+
* Create permissive policy
|
|
114
|
+
*/
|
|
115
|
+
createPermissivePolicy(name: string): ScanPolicy;
|
|
116
|
+
/**
|
|
117
|
+
* Get config
|
|
118
|
+
*/
|
|
119
|
+
getConfig(id: string): ImageScanConfig | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* List configs
|
|
122
|
+
*/
|
|
123
|
+
listConfigs(): ImageScanConfig[];
|
|
124
|
+
/**
|
|
125
|
+
* Get result
|
|
126
|
+
*/
|
|
127
|
+
getResult(id: string): ImageScanResult | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* List results
|
|
130
|
+
*/
|
|
131
|
+
listResults(): ImageScanResult[];
|
|
132
|
+
/**
|
|
133
|
+
* Generate CloudFormation for ECR scanning
|
|
134
|
+
*/
|
|
135
|
+
generateECRScanCF(config: ImageScanConfig): any;
|
|
136
|
+
/**
|
|
137
|
+
* Clear all data
|
|
138
|
+
*/
|
|
139
|
+
clear(): void;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Global image scanning manager instance
|
|
143
|
+
*/
|
|
144
|
+
export declare const imageScanningManager: ImageScanningManager;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Private Container Registry
|
|
3
|
+
* ECR repository management and access control
|
|
4
|
+
*/
|
|
5
|
+
export interface ContainerRegistry {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
registryType: 'ecr' | 'dockerhub' | 'gcr' | 'acr';
|
|
9
|
+
repositoryUri: string;
|
|
10
|
+
region?: string;
|
|
11
|
+
encryption?: RegistryEncryption;
|
|
12
|
+
scanning?: ScanningConfig;
|
|
13
|
+
lifecycle?: LifecyclePolicy;
|
|
14
|
+
replication?: ReplicationConfig;
|
|
15
|
+
}
|
|
16
|
+
export interface RegistryEncryption {
|
|
17
|
+
encryptionType: 'AES256' | 'KMS';
|
|
18
|
+
kmsKeyId?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ScanningConfig {
|
|
21
|
+
scanOnPush: boolean;
|
|
22
|
+
scanFilters?: ScanFilter[];
|
|
23
|
+
}
|
|
24
|
+
export interface ScanFilter {
|
|
25
|
+
tagPattern: string;
|
|
26
|
+
scanFrequency: 'on_push' | 'daily' | 'weekly';
|
|
27
|
+
}
|
|
28
|
+
export interface LifecyclePolicy {
|
|
29
|
+
id: string;
|
|
30
|
+
rules: LifecycleRule[];
|
|
31
|
+
}
|
|
32
|
+
export interface LifecycleRule {
|
|
33
|
+
rulePriority: number;
|
|
34
|
+
description: string;
|
|
35
|
+
selection: {
|
|
36
|
+
tagStatus: 'tagged' | 'untagged' | 'any';
|
|
37
|
+
tagPrefixList?: string[];
|
|
38
|
+
countType: 'imageCountMoreThan' | 'sinceImagePushed';
|
|
39
|
+
countNumber: number;
|
|
40
|
+
countUnit?: 'days';
|
|
41
|
+
};
|
|
42
|
+
action: {
|
|
43
|
+
type: 'expire';
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface ReplicationConfig {
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
destinations: ReplicationDestination[];
|
|
49
|
+
rules?: ReplicationRule[];
|
|
50
|
+
}
|
|
51
|
+
export interface ReplicationDestination {
|
|
52
|
+
region: string;
|
|
53
|
+
registryId?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface ReplicationRule {
|
|
56
|
+
repositoryFilter: string[];
|
|
57
|
+
destinations: ReplicationDestination[];
|
|
58
|
+
}
|
|
59
|
+
export interface RegistryCredentials {
|
|
60
|
+
id: string;
|
|
61
|
+
registryId: string;
|
|
62
|
+
username: string;
|
|
63
|
+
passwordSecretArn: string;
|
|
64
|
+
expiresAt?: Date;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Container registry manager
|
|
68
|
+
*/
|
|
69
|
+
export declare class ContainerRegistryManager {
|
|
70
|
+
private registries;
|
|
71
|
+
private credentials;
|
|
72
|
+
private registryCounter;
|
|
73
|
+
private credentialsCounter;
|
|
74
|
+
/**
|
|
75
|
+
* Create registry
|
|
76
|
+
*/
|
|
77
|
+
createRegistry(registry: Omit<ContainerRegistry, 'id'>): ContainerRegistry;
|
|
78
|
+
/**
|
|
79
|
+
* Create ECR repository
|
|
80
|
+
*/
|
|
81
|
+
createECRRepository(options: {
|
|
82
|
+
name: string;
|
|
83
|
+
region?: string;
|
|
84
|
+
scanOnPush?: boolean;
|
|
85
|
+
encryption?: 'AES256' | 'KMS';
|
|
86
|
+
kmsKeyId?: string;
|
|
87
|
+
}): ContainerRegistry;
|
|
88
|
+
/**
|
|
89
|
+
* Create private registry with lifecycle policy
|
|
90
|
+
*/
|
|
91
|
+
createManagedRepository(options: {
|
|
92
|
+
name: string;
|
|
93
|
+
region?: string;
|
|
94
|
+
maxImageCount?: number;
|
|
95
|
+
maxImageAgeDays?: number;
|
|
96
|
+
}): ContainerRegistry;
|
|
97
|
+
/**
|
|
98
|
+
* Enable cross-region replication
|
|
99
|
+
*/
|
|
100
|
+
enableReplication(registryId: string, destinations: ReplicationDestination[]): ContainerRegistry;
|
|
101
|
+
/**
|
|
102
|
+
* Create registry credentials
|
|
103
|
+
*/
|
|
104
|
+
createCredentials(credentials: Omit<RegistryCredentials, 'id'>): RegistryCredentials;
|
|
105
|
+
/**
|
|
106
|
+
* Get registry
|
|
107
|
+
*/
|
|
108
|
+
getRegistry(id: string): ContainerRegistry | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* List registries
|
|
111
|
+
*/
|
|
112
|
+
listRegistries(): ContainerRegistry[];
|
|
113
|
+
/**
|
|
114
|
+
* Generate CloudFormation for ECR repository
|
|
115
|
+
*/
|
|
116
|
+
generateECRRepositoryCF(registry: ContainerRegistry): any;
|
|
117
|
+
/**
|
|
118
|
+
* Generate CloudFormation for replication configuration
|
|
119
|
+
*/
|
|
120
|
+
generateReplicationConfigCF(replication: ReplicationConfig): any;
|
|
121
|
+
/**
|
|
122
|
+
* Clear all data
|
|
123
|
+
*/
|
|
124
|
+
clear(): void;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Global container registry manager instance
|
|
128
|
+
*/
|
|
129
|
+
export declare const containerRegistryManager: ContainerRegistryManager;
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Mesh Integration
|
|
3
|
+
* AWS App Mesh configuration for microservices
|
|
4
|
+
*/
|
|
5
|
+
export interface ServiceMesh {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
meshType: 'app_mesh' | 'istio' | 'linkerd';
|
|
9
|
+
services: MeshService[];
|
|
10
|
+
virtualNodes?: VirtualNode[];
|
|
11
|
+
virtualRouters?: VirtualRouter[];
|
|
12
|
+
virtualGateways?: VirtualGateway[];
|
|
13
|
+
}
|
|
14
|
+
export interface MeshService {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
namespace: string;
|
|
18
|
+
port: number;
|
|
19
|
+
protocol: 'http' | 'http2' | 'grpc' | 'tcp';
|
|
20
|
+
backends?: string[];
|
|
21
|
+
healthCheck?: HealthCheck;
|
|
22
|
+
}
|
|
23
|
+
export interface VirtualNode {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
serviceName: string;
|
|
27
|
+
listeners: Listener[];
|
|
28
|
+
backends?: Backend[];
|
|
29
|
+
serviceDiscovery: ServiceDiscovery;
|
|
30
|
+
}
|
|
31
|
+
export interface Listener {
|
|
32
|
+
port: number;
|
|
33
|
+
protocol: 'http' | 'http2' | 'grpc' | 'tcp';
|
|
34
|
+
healthCheck?: HealthCheck;
|
|
35
|
+
timeout?: Timeout;
|
|
36
|
+
tls?: TLSConfig;
|
|
37
|
+
}
|
|
38
|
+
export interface HealthCheck {
|
|
39
|
+
protocol: 'http' | 'tcp' | 'grpc';
|
|
40
|
+
path?: string;
|
|
41
|
+
port?: number;
|
|
42
|
+
interval: number;
|
|
43
|
+
timeout: number;
|
|
44
|
+
healthyThreshold: number;
|
|
45
|
+
unhealthyThreshold: number;
|
|
46
|
+
}
|
|
47
|
+
export interface Timeout {
|
|
48
|
+
perRequest?: number;
|
|
49
|
+
idle?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface TLSConfig {
|
|
52
|
+
mode: 'STRICT' | 'PERMISSIVE' | 'DISABLED';
|
|
53
|
+
certificate?: {
|
|
54
|
+
acm?: string;
|
|
55
|
+
file?: {
|
|
56
|
+
certificateChain: string;
|
|
57
|
+
privateKey: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
validation?: {
|
|
61
|
+
trust: {
|
|
62
|
+
acm?: string[];
|
|
63
|
+
file?: {
|
|
64
|
+
certificateChain: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export interface Backend {
|
|
70
|
+
virtualServiceName: string;
|
|
71
|
+
clientPolicy?: ClientPolicy;
|
|
72
|
+
}
|
|
73
|
+
export interface ClientPolicy {
|
|
74
|
+
tls?: {
|
|
75
|
+
enforce: boolean;
|
|
76
|
+
ports?: number[];
|
|
77
|
+
validation: {
|
|
78
|
+
trust: {
|
|
79
|
+
acm?: string[];
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface ServiceDiscovery {
|
|
85
|
+
type: 'aws_cloud_map' | 'dns';
|
|
86
|
+
namespace?: string;
|
|
87
|
+
serviceName?: string;
|
|
88
|
+
hostname?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface VirtualRouter {
|
|
91
|
+
id: string;
|
|
92
|
+
name: string;
|
|
93
|
+
listeners: RouterListener[];
|
|
94
|
+
routes: Route[];
|
|
95
|
+
}
|
|
96
|
+
export interface RouterListener {
|
|
97
|
+
port: number;
|
|
98
|
+
protocol: 'http' | 'http2' | 'grpc' | 'tcp';
|
|
99
|
+
}
|
|
100
|
+
export interface Route {
|
|
101
|
+
name: string;
|
|
102
|
+
match: RouteMatch;
|
|
103
|
+
action: RouteAction;
|
|
104
|
+
priority?: number;
|
|
105
|
+
retryPolicy?: RetryPolicy;
|
|
106
|
+
}
|
|
107
|
+
export interface RouteMatch {
|
|
108
|
+
prefix?: string;
|
|
109
|
+
path?: string;
|
|
110
|
+
headers?: HeaderMatch[];
|
|
111
|
+
method?: string;
|
|
112
|
+
}
|
|
113
|
+
export interface HeaderMatch {
|
|
114
|
+
name: string;
|
|
115
|
+
match?: {
|
|
116
|
+
exact?: string;
|
|
117
|
+
prefix?: string;
|
|
118
|
+
suffix?: string;
|
|
119
|
+
regex?: string;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export interface RouteAction {
|
|
123
|
+
weightedTargets: WeightedTarget[];
|
|
124
|
+
}
|
|
125
|
+
export interface WeightedTarget {
|
|
126
|
+
virtualNode: string;
|
|
127
|
+
weight: number;
|
|
128
|
+
port?: number;
|
|
129
|
+
}
|
|
130
|
+
export interface RetryPolicy {
|
|
131
|
+
maxRetries: number;
|
|
132
|
+
perRetryTimeout: number;
|
|
133
|
+
httpRetryEvents?: string[];
|
|
134
|
+
tcpRetryEvents?: string[];
|
|
135
|
+
}
|
|
136
|
+
export interface VirtualGateway {
|
|
137
|
+
id: string;
|
|
138
|
+
name: string;
|
|
139
|
+
listeners: GatewayListener[];
|
|
140
|
+
logging?: {
|
|
141
|
+
accessLog?: {
|
|
142
|
+
file?: {
|
|
143
|
+
path: string;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export interface GatewayListener {
|
|
149
|
+
port: number;
|
|
150
|
+
protocol: 'http' | 'http2' | 'grpc';
|
|
151
|
+
healthCheck?: HealthCheck;
|
|
152
|
+
tls?: TLSConfig;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Service mesh manager
|
|
156
|
+
*/
|
|
157
|
+
export declare class ServiceMeshManager {
|
|
158
|
+
private meshes;
|
|
159
|
+
private virtualNodes;
|
|
160
|
+
private virtualRouters;
|
|
161
|
+
private virtualGateways;
|
|
162
|
+
private meshCounter;
|
|
163
|
+
private nodeCounter;
|
|
164
|
+
private routerCounter;
|
|
165
|
+
private gatewayCounter;
|
|
166
|
+
/**
|
|
167
|
+
* Create service mesh
|
|
168
|
+
*/
|
|
169
|
+
createMesh(mesh: Omit<ServiceMesh, 'id'>): ServiceMesh;
|
|
170
|
+
/**
|
|
171
|
+
* Create App Mesh
|
|
172
|
+
*/
|
|
173
|
+
createAppMesh(options: {
|
|
174
|
+
name: string;
|
|
175
|
+
services: MeshService[];
|
|
176
|
+
}): ServiceMesh;
|
|
177
|
+
/**
|
|
178
|
+
* Create virtual node
|
|
179
|
+
*/
|
|
180
|
+
createVirtualNode(node: Omit<VirtualNode, 'id'>): VirtualNode;
|
|
181
|
+
/**
|
|
182
|
+
* Create HTTP virtual node
|
|
183
|
+
*/
|
|
184
|
+
createHTTPVirtualNode(options: {
|
|
185
|
+
name: string;
|
|
186
|
+
serviceName: string;
|
|
187
|
+
port: number;
|
|
188
|
+
namespace: string;
|
|
189
|
+
}): VirtualNode;
|
|
190
|
+
/**
|
|
191
|
+
* Create virtual router
|
|
192
|
+
*/
|
|
193
|
+
createVirtualRouter(router: Omit<VirtualRouter, 'id'>): VirtualRouter;
|
|
194
|
+
/**
|
|
195
|
+
* Create canary route
|
|
196
|
+
*/
|
|
197
|
+
createCanaryRoute(options: {
|
|
198
|
+
name: string;
|
|
199
|
+
port: number;
|
|
200
|
+
protocol: 'http' | 'http2' | 'grpc';
|
|
201
|
+
stableTarget: string;
|
|
202
|
+
canaryTarget: string;
|
|
203
|
+
canaryWeight: number;
|
|
204
|
+
}): VirtualRouter;
|
|
205
|
+
/**
|
|
206
|
+
* Create virtual gateway
|
|
207
|
+
*/
|
|
208
|
+
createVirtualGateway(gateway: Omit<VirtualGateway, 'id'>): VirtualGateway;
|
|
209
|
+
/**
|
|
210
|
+
* Create ingress gateway
|
|
211
|
+
*/
|
|
212
|
+
createIngressGateway(options: {
|
|
213
|
+
name: string;
|
|
214
|
+
port: number;
|
|
215
|
+
enableTLS?: boolean;
|
|
216
|
+
certificateArn?: string;
|
|
217
|
+
}): VirtualGateway;
|
|
218
|
+
/**
|
|
219
|
+
* Get mesh
|
|
220
|
+
*/
|
|
221
|
+
getMesh(id: string): ServiceMesh | undefined;
|
|
222
|
+
/**
|
|
223
|
+
* List meshes
|
|
224
|
+
*/
|
|
225
|
+
listMeshes(): ServiceMesh[];
|
|
226
|
+
/**
|
|
227
|
+
* Get virtual node
|
|
228
|
+
*/
|
|
229
|
+
getVirtualNode(id: string): VirtualNode | undefined;
|
|
230
|
+
/**
|
|
231
|
+
* List virtual nodes
|
|
232
|
+
*/
|
|
233
|
+
listVirtualNodes(): VirtualNode[];
|
|
234
|
+
/**
|
|
235
|
+
* Generate CloudFormation for App Mesh
|
|
236
|
+
*/
|
|
237
|
+
generateMeshCF(mesh: ServiceMesh): any;
|
|
238
|
+
/**
|
|
239
|
+
* Generate CloudFormation for Virtual Node
|
|
240
|
+
*/
|
|
241
|
+
generateVirtualNodeCF(node: VirtualNode, meshName: string): any;
|
|
242
|
+
/**
|
|
243
|
+
* Generate CloudFormation for Virtual Router
|
|
244
|
+
*/
|
|
245
|
+
generateVirtualRouterCF(router: VirtualRouter, meshName: string): any;
|
|
246
|
+
/**
|
|
247
|
+
* Clear all data
|
|
248
|
+
*/
|
|
249
|
+
clear(): void;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Global service mesh manager instance
|
|
253
|
+
*/
|
|
254
|
+
export declare const serviceMeshManager: ServiceMeshManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|