my-cloud-devops-consulting 1.1.202507170113__tar.gz → 1.1.202507211454__tar.gz
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.
- {my-cloud-devops-consulting-1.1.202507170113/my_cloud_devops_consulting.egg-info → my-cloud-devops-consulting-1.1.202507211454}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/app.py +53 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454/my_cloud_devops_consulting.egg-info}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/SOURCES.txt +2 -0
- my-cloud-devops-consulting-1.1.202507211454/static/images/video-poster.jpg +0 -0
- my-cloud-devops-consulting-1.1.202507211454/static/video/Untitled_video.mp4 +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/base.html +8 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/index.html +80 -27
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/MANIFEST.in +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/README.md +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/setup.cfg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/setup.py +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/anifest.json +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/about.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/assessment.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/contact-form.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/index.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/login.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/main.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/register.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/services.css +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/facebook.png +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/favicon.svg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/image.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/instagram.png +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/linkedin.png +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-divinetechygirl-1181341.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-divinetechygirl-1181472.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-fotios-photos-16129703.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-tiger-lily-7108466.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/whatsapp-navbar.png +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/worldmap.jpeg +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/counter.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/index.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/login.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/main.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/register.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/services.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/typing.js +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/robots.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/sitemap.xml +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/video/7989443-hd_1920_1080_25fps.mp4 +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/video/myvideo.mp4.mp4 +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/about.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/assessment.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/contact-form.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/forgot-password.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/login.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/private-videos.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/register.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/reset-password.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/services.html +0 -0
- {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/test/test.py +0 -0
{my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/app.py
RENAMED
@@ -250,6 +250,59 @@ def reset_password(token):
|
|
250
250
|
def cookie_policy():
|
251
251
|
return render_template('cookie-policy.html')
|
252
252
|
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
# Cognito OIDC setup
|
257
|
+
# Add and configure the authlib OAuth component.
|
258
|
+
from flask import Flask, redirect, url_for, session
|
259
|
+
from authlib.integrations.flask_client import OAuth
|
260
|
+
import os
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
oauth = OAuth(app)
|
265
|
+
|
266
|
+
oauth.register(
|
267
|
+
name='oidc',
|
268
|
+
authority='https://cognito-idp.us-east-1.amazonaws.com/us-east-1_TZVykdVvG',
|
269
|
+
client_id='1lc7qso1g3lr9kqbr0nb0jktbs',
|
270
|
+
client_secret='1f1qa6rf66549cta1uqpamjpjqt06ne3agvlgou638e56kmt8dve',
|
271
|
+
server_metadata_url='https://cognito-idp.us-east-1.amazonaws.com/us-east-1_TZVykdVvG/.well-known/openid-configuration',
|
272
|
+
client_kwargs={'scope': 'phone openid email'}
|
273
|
+
)
|
274
|
+
################################################
|
275
|
+
|
276
|
+
# Configure a login route to direct to Amazon Cognito managed login for authentication with a redirect to an authorize route.
|
277
|
+
@app.route('/login/cognito')
|
278
|
+
def login_cognito():
|
279
|
+
session.pop('user', None)
|
280
|
+
redirect_uri = url_for('authorize', _external=True)
|
281
|
+
return oauth.oidc.authorize_redirect(
|
282
|
+
redirect_uri,
|
283
|
+
prompt='login' # 🔄 Forces re-authentication from Cognito
|
284
|
+
)
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
# The OAuth module collects the access token and retrieves user data from the Amazon Cognito userInfo endpoint. Configure an authorize route to handle the access token and user data after authentication.
|
290
|
+
@app.route('/authorize')
|
291
|
+
def authorize():
|
292
|
+
token = oauth.oidc.authorize_access_token()
|
293
|
+
user = token['userinfo']
|
294
|
+
session['user'] = user
|
295
|
+
return redirect(url_for('home')) # ✅ Fixed: 'home' matches your defined route
|
296
|
+
|
297
|
+
|
298
|
+
# Configure a logout route that erases user session data.
|
299
|
+
@app.route('/logout/cognito')
|
300
|
+
def logout_cognito(): # ✅ Renamed to avoid conflict
|
301
|
+
session.pop('user', None)
|
302
|
+
return redirect(url_for('home')) # 🔁 Also change to 'home' if 'index' doesn't exist
|
303
|
+
|
304
|
+
|
305
|
+
|
253
306
|
if __name__ == '__main__':
|
254
307
|
app.run(debug=True, host='0.0.0.0', port=50)
|
255
308
|
|
@@ -27,6 +27,7 @@ static/images/pexels-divinetechygirl-1181341.jpg
|
|
27
27
|
static/images/pexels-divinetechygirl-1181472.jpg
|
28
28
|
static/images/pexels-fotios-photos-16129703.jpg
|
29
29
|
static/images/pexels-tiger-lily-7108466.jpg
|
30
|
+
static/images/video-poster.jpg
|
30
31
|
static/images/whatsapp-navbar.png
|
31
32
|
static/images/worldmap.jpeg
|
32
33
|
static/js/counter.js
|
@@ -37,6 +38,7 @@ static/js/register.js
|
|
37
38
|
static/js/services.js
|
38
39
|
static/js/typing.js
|
39
40
|
static/video/7989443-hd_1920_1080_25fps.mp4
|
41
|
+
static/video/Untitled_video.mp4
|
40
42
|
static/video/myvideo.mp4.mp4
|
41
43
|
templates/about.html
|
42
44
|
templates/assessment.html
|
@@ -208,6 +208,14 @@
|
|
208
208
|
><i class="fas fa-sign-in-alt"></i> Login</a
|
209
209
|
>
|
210
210
|
</li>
|
211
|
+
<!-- add cognito login -->
|
212
|
+
<li>
|
213
|
+
<a href="{{ url_for('login_cognito') }}">
|
214
|
+
<i class="fas fa-user-lock"></i> Login with Cognito
|
215
|
+
</a>
|
216
|
+
</li>
|
217
|
+
<!-- add cognito login -->
|
218
|
+
|
211
219
|
<li
|
212
220
|
style="
|
213
221
|
display: flex;
|
@@ -1,42 +1,93 @@
|
|
1
1
|
{% extends "base.html" %} {% block main %}
|
2
2
|
|
3
|
+
<!-- Hero Section -->
|
4
|
+
<!-- Hero Section -->
|
3
5
|
<!-- Hero Section -->
|
4
6
|
<section
|
5
7
|
class="hero-section"
|
6
|
-
style="
|
8
|
+
style="padding: 60px 40px; background-color: #ffffff"
|
7
9
|
>
|
8
|
-
|
9
|
-
<div class="floating-shape one"></div>
|
10
|
-
<div class="floating-shape two"></div>
|
11
|
-
|
12
|
-
<h1 data-aos="fade-up" id="dynamic-headline"></h1>
|
13
|
-
|
14
|
-
<p
|
10
|
+
<div
|
15
11
|
style="
|
16
|
-
|
17
|
-
|
12
|
+
display: flex;
|
13
|
+
flex-wrap: wrap;
|
14
|
+
align-items: center;
|
15
|
+
justify-content: space-between;
|
16
|
+
gap: 40px;
|
17
|
+
max-width: 1400px;
|
18
18
|
margin: 0 auto;
|
19
|
-
color: #007bff;
|
20
|
-
font-weight: 600;
|
21
|
-
line-height: 1.6;
|
22
19
|
"
|
23
|
-
data-aos="fade-up"
|
24
|
-
data-aos-delay="200"
|
25
20
|
>
|
26
|
-
|
27
|
-
|
28
|
-
</p>
|
21
|
+
<!-- 🎥 Left: Full-width Video -->
|
22
|
+
<div style="flex: 1 1 700px; min-width: 400px">
|
29
23
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
<video
|
25
|
+
controls
|
26
|
+
poster="{{ url_for('static', filename='images/video-poster.jpg') }}"
|
27
|
+
style="
|
28
|
+
width: 100%;
|
29
|
+
height: auto;
|
30
|
+
border-radius: 12px;
|
31
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
32
|
+
"
|
33
|
+
>
|
34
|
+
<source
|
35
|
+
src="{{ url_for('static', filename='video/Untitled_video.mp4') }}"
|
36
|
+
type="video/mp4"
|
37
|
+
/>
|
38
|
+
Your browser does not support the video tag.
|
39
|
+
</video>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<!-- 📝 Right: Hero Text, also expanded -->
|
43
|
+
<div style="flex: 1 1 600px; min-width: 350px">
|
44
|
+
<h1
|
45
|
+
id="dynamic-headline"
|
46
|
+
data-aos="fade-up"
|
47
|
+
style="
|
48
|
+
font-size: 2.5rem;
|
49
|
+
color: #007bff;
|
50
|
+
font-weight: 700;
|
51
|
+
margin-bottom: 20px;
|
52
|
+
"
|
53
|
+
>
|
54
|
+
From Dev to Ops — Faster
|
55
|
+
</h1>
|
56
|
+
<p
|
57
|
+
style="
|
58
|
+
font-size: 1.25rem;
|
59
|
+
line-height: 1.8;
|
60
|
+
color: #333;
|
61
|
+
font-weight: 500;
|
62
|
+
margin-bottom: 30px;
|
63
|
+
"
|
64
|
+
data-aos="fade-up"
|
65
|
+
data-aos-delay="200"
|
66
|
+
>
|
67
|
+
We specialize in delivering Cloud and DevOps consulting services
|
68
|
+
tailored to your unique business needs.
|
69
|
+
</p>
|
70
|
+
|
71
|
+
<a
|
72
|
+
href="{{ url_for('services') }}"
|
73
|
+
class="btn btn-primary"
|
74
|
+
data-aos="zoom-in"
|
75
|
+
data-aos-delay="400"
|
76
|
+
style="
|
77
|
+
padding: 14px 28px;
|
78
|
+
font-weight: 600;
|
79
|
+
font-size: 16px;
|
80
|
+
border-radius: 8px;
|
81
|
+
"
|
82
|
+
>
|
83
|
+
Explore Our Services
|
84
|
+
</a>
|
85
|
+
</div>
|
86
|
+
</div>
|
38
87
|
</section>
|
39
88
|
|
89
|
+
<!-- 🔥 Background Video Section -->
|
90
|
+
|
40
91
|
<!-- 🔥 Background Video Section -->
|
41
92
|
<section
|
42
93
|
class="video-hero-section"
|
@@ -278,7 +329,7 @@
|
|
278
329
|
display: grid;
|
279
330
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
280
331
|
gap: 40px;
|
281
|
-
max-width:
|
332
|
+
max-width: 4000px;
|
282
333
|
margin: 0 auto;
|
283
334
|
padding: 0 20px;
|
284
335
|
"
|
@@ -318,6 +369,8 @@
|
|
318
369
|
</div>
|
319
370
|
</section>
|
320
371
|
|
372
|
+
<!-- 🔥 Intro Video with Narration -->
|
373
|
+
|
321
374
|
<!-- Quick Links Section -->
|
322
375
|
<section class="quick-links">
|
323
376
|
<h3>Quick Links for more</h3>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/setup.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|